PC端訪問卻變成移動端地址問題#python#scrapy
問題描述
用scrapy 爬取喜馬拉雅,爬取PC端地址,入口鏈接的response沒問題,但后面response看到的是移動端地址。。。。
spider 代碼如下:
class SpxmlySpider(scrapy.Spider): name = ’ximalaya’ allowed_domains = ['ximalaya.com'] # 保存每頁鏈接 start_urls = [’http://www.ximalaya.com/dq/all/{}’.format(num) for num in range(2, 3)] #先改為第二頁試試 def parse(self, response):# 取出專輯鏈接print(response)mainurls = response.xpath(’//p[@class='albumfaceOutter']/a/@href’).extract()# for url in mainurls:# yield Request(url = url, callback=self.parse_details)print(mainurls[0])yield Request(url = mainurls[0], dont_filter=True, callback = self.parse_details)# TODO 為什么PC端訪問會變成移動地址問題!!!!!!!!!!!!!!!!! def parse_details(self, response):item = XimalayaItem()print(response)......以下省略
控制臺輸出:
已經寫了一個 middlewares.RotateUserAgentMiddleware,是生效的,輸出內容也可以看出來。
是不是觸發什么反爬機制?
問題解答
回答1:應該是你的headers沒有設置user-agent的原因
回答2:request headers 好好配置一下, 判斷是不是移動端一般是靠user-agent啥都沒有也能訪問到數據,也說明目標網站沒怎么在意防盜鏈
相關文章:
1. python - 關于beautifulsoup獲取文檔內容2. mysql - 僅僅只是把單引號與反斜杠轉義不用prepare statement能否避免sql注入?3. Python爬取網頁requests亂碼4. java - springMVC配置的controller無法返回jsp文件5. javascript - 項目用IE瀏覽器打開修改前端內容,后臺數據修改了,但是前端頁面內容不變,用谷歌瀏覽器測試前端頁面可以刷新,求大神解決。6. MySQL 中怎么修改字段名,不更改屬性?7. 如何通過Java編碼生成Jmeter儀表板報告。(不是Windows或Shell命令)8. javascript - 看一些高手寫代碼單獨用 “$”和“_” 來表示變量,什么時候單獨使用這兩個字符?9. nginx - openresty無法使用require10. 面向對象編程 - java動態加載和類型轉換問題?
