有時為了測試xpath,需要臨時下載個頁面,這時使用命令行進行測試是最方便的,但是很多網站頁面需要認證,不能直接使用scrapy shell命令進行頁面的抓取,所以需要重新對請求進行構造,設置cookies和headers。
首先在當前裝有scrapy的python環境中安裝ipython
# python環境下 pip install ipython # conda環境下 conda install ipython
首先進入scrapy shell,會自動使用ipython
scrapy shell
把cookies轉成字典格式
# 指定請求目標的 URL 鏈接 url = 'https://novel18.syosetu.com/n7016er/31/' # 自定義 Headers 請求頭(一般建議在調試時使用自定義 UA,以繞過最基礎的 User-Agent 檢測) headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'} # 構造需要附帶的 Cookies 字典 cookies = {"key_1": "value_1", "key_2": "value_2", "key_3": "value_3"} # 構造 Request 請求對象 req = scrapy.Request(url, cookies=cookies, headers=headers) # 發起 Request 請求 fetch(req) # 在系統默認瀏覽器查看請求的頁面(主要為了檢查是否正常爬取到內頁) view(response) # 網頁響應正文 byte類型 response.body # 網頁響應正文 str類型 response.text # xpath選擇器 repsonse.xpath()
原文鏈接:https://blog.csdn.net/u010741500/article/details/100974510