[英]Why Scrapy Udemy gives response 403 error?
我试图使用scrapy shell来查看页面的response.css结果。 我使用的简单代码片段是 response.css("title::text").extract()。 通常这应该给你网页的标题。 但我知道 Udemy 是不可能的。 另一方面,我将它用于亚马逊,并且运行良好。 任何意见?
scrapy shell "https://www.udemy.com/courses/search/?q=python&src=sac&kw=python"
response.css("title::text").extract()
['Access to this page has been denied.']
另一方面,下面的这个工作正常。
scrapy shell "https://www.amazon.com/s?k=garlic+press&crid=2DY5U90PELGKN&sprefix=garlic+pres%2Caps%2C286&ref=nb_sb_ss_i_1_11"
response.css("title::text").extract()
['Amazon.com: garlic press']
编辑:
scrapy shell --set=USER_AGENT='Mozilla/5.0' "https://www.udemy.com/courses/search/?q=python&src=sac&kw=python"
response.css("h4::text").extract()
[]
Udemy 试图阻止您使用自动化抓取。 它返回一个 HTTP 403 响应,在该响应的正文中有一些文本说明:
访问此页面已被拒绝,因为我们认为您正在使用自动化工具浏览网站。
当 HTTP 标头User-Agent
值不是他们想要访问其内容的值时,他们就会阻塞。 幸运的是,标题可以被欺骗。
scrapy shell --set=USER_AGENT='Mozilla/5.0' "https://www.udemy.com/courses/search/?q=python&src=sac&kw=python"
应该可以工作(不过,我在这台机器上没有 python/scrapy,所以我没有测试)
编辑:我不确定规避他们的机器人保护的合法性......在使用此建议之前,请务必查看当地法律。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.