Python 404响应在scrapy shell中,浏览器中的结果不同

Python 404响应在scrapy shell中,浏览器中的结果不同,python,scrapy,Python,Scrapy,我正在抓取网站oddsportal,只需简单查询标题文本即可返回['oddsportal:Page not found'],但在浏览器控制台中,此['oddsportal:Page not found']不会出现。我注意到,当壳体加载时,响应为: [s] response <404 https://www.oddsportal.com/darts/europe/european-championship/results/> 我期待上述选择器: 欧洲锦标赛结果和历史赔率,飞镖

我正在抓取网站oddsportal,只需简单查询标题文本即可返回['oddsportal:Page not found'],但在浏览器控制台中,此['oddsportal:Page not found']不会出现。我注意到,当壳体加载时,响应为:

[s]   response   <404 https://www.oddsportal.com/darts/europe/european-championship/results/>
我期待上述选择器:


欧洲锦标赛结果和历史赔率,飞镖欧洲档案

我在运行自己的请求时也会遇到此错误。如图所示,本网站不允许刮削。我猜他们有一些守卫来阻止你尝试。我成功地使用了无头版本的selenium。我建议你用那种方式刮。看起来站点的大部分内容都是动态javascript,因此这是selenium的另一个+1。在这个例子中,我使用BeautifulSoup进行解析,我强烈推荐它

从selenium导入webdriver
从bs4导入BeautifulSoup
driver=webdriver.Chrome()
司机,上车https://www.oddsportal.com/darts/europe/european-championship/results/')
soup=BeautifulSoup(driver.page_源代码'html.parser')
打印(soup.title.text)
#输出
#欧洲锦标赛成绩和历史赔率,飞镖欧洲档案

我使用了标志
--set=“ROBOTSTXT\u OBEY=False”
但是它仍然返回sameI,在这里为您添加了一个使用selenium的工作示例。如果您以前没有使用过selenium,请阅读文档中的简单用法。谢谢,但我认为对于这个用例来说,它太慢了。在更改用户代理后,我可以跳过URL,如下所述:@MadMike,这很有效!我很乐意帮忙;)
scrapy shell 'https://www.oddsportal.com/darts/europe/european-championship/results/' --set="ROBOTSTXT_OBEY=False"

response.css('title::text').extract()
['OddsPortal: Page not found']