用scrapy 爬取喜馬拉雅,爬取PC端位址,入口連結(jié)的response沒(méi)問(wèn)題,但後面response看到的是行動(dòng)位址。 。 。 。
spider 程式碼如下:
class SpxmlySpider(scrapy.Spider):
name = 'ximalaya'
allowed_domains = ["ximalaya.com"]
# 保存每頁(yè)鏈接
start_urls = ['http://www.ximalaya.com/dq/all/{}'.format(num) for num in range(2, 3)] #先改為第二頁(yè)試試
def parse(self, response):
# 取出專(zhuān)輯鏈接
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端訪問(wèn)會(huì)變成移動(dòng)地址問(wèn)題!?。。。。。。。。。。。。。。?!
def parse_details(self, response):
item = XimalayaItem()
print(response)
......以下省略
控制臺(tái)輸出:
#已經(jīng)寫(xiě)了一個(gè) middlewares.RotateUserAgentMiddleware,是生效的,輸出內(nèi)容也可以看出來(lái)。
是不是觸發(fā)什麼反爬機(jī)制?
request headers 好好配置一下, 判斷是不是移動(dòng)端一般是靠user-agent
啥都沒(méi)有也能訪問(wèn)到數(shù)據(jù),也說(shuō)明目標(biāo)網(wǎng)站沒(méi)怎麼在意防盜鏈