【发布时间】:2019-09-11 00:47:18
【问题描述】:
我是使用scrapy 的新手,我对抓取的网址有疑问。
我正在尝试抓取您访问的每个页面都重定向到主页的站点,当您单击横幅时,您可以访问其他页面。我试过用
meta={'dont_redirect': True, 'handle_httpstatus_list': [301, 302]
为了避免重定向,但从 url 中抓取的仍然是错误的。所以我认为问题出在cookies上,为了测试它,我在进入网站时将cookies硬编码为与浏览器相同,现在它没有重定向,我什至不需要将'dont_redirect'放在meta 但是当我查看调试器时,它仍在抓取主页。
现在代码是这样的:
import scrapy
class MatchOpeningSpider(scrapy.Spider):
name = 'bet_365_match_opening'
start_urls = [
'https://www.bet365.com/#/AC/B1/C1/D13/E38078994/F2/'
]
def start_requests(self):
for url in self.start_urls:
yield scrapy.Request(url, cookies={
'pstk': '04761A56B7A54D9BB3948A093FB9F440000003',
'rmbs': 3,
'aps03': 'lng=22&tzi=34&oty=2&ct=28&cg=1&cst=0&hd=N&cf=N',
'session': 'processform=0&fms=1'
})
def parse(self, response):
games = response.css('div.sl-CouponParticipantWithBookCloses_Name').extract()
yield {'games': games}
debug 可以看到 Crawled 的 url 是对的,但是 Scraped from 是主页
2019-04-21 12:02:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.bet365.com/#/AC/B1/C1/D13/E38078994/F2/> (referer: None)
2019-04-21 12:02:37 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.bet365.com/>
我做错了什么? 感谢您的帮助!!!
【问题讨论】:
标签: python python-3.x web-scraping scrapy