Python Scrapy splash呈现不同的HTML
最近,我一直在努力搜刮一个电子商务网站。起初,我一直被重定向到“你是机器人吗?”页面。然后我开始使用浏览器用户代理,scrapy splash for Javascript和5秒的下载延迟。现在,没有错误,但是没有呈现正确的页面 spider.pyPython Scrapy splash呈现不同的HTML,python,web-scraping,scrapy,scrapy-splash,Python,Web Scraping,Scrapy,Scrapy Splash,最近,我一直在努力搜刮一个电子商务网站。起初,我一直被重定向到“你是机器人吗?”页面。然后我开始使用浏览器用户代理,scrapy splash for Javascript和5秒的下载延迟。现在,没有错误,但是没有呈现正确的页面 spider.py class ClassifiedsSpider(scrapy.Spider): name = 'classifieds' allowed_domains = ['dubai.dubizzle.com'] start_urls = ['http://d
class ClassifiedsSpider(scrapy.Spider):
name = 'classifieds'
allowed_domains = ['dubai.dubizzle.com']
start_urls = ['http://dubai.dubizzle.com/classified/']
def parse(self, response):
url = response.xpath("//h3[@id='title']/span[@class='title']/a/@href").extract_first()
yield SplashRequest(url, self.get_details,
endpoint='render.html',
args={'wait': 0.5, 'proxy':'http://89.212.66.36:8080'},
)
def get_details(self, response):
title = response.xpath("//h1[@id='title']/span[@id='listing-title-wrap']").extract_first()
item = Product()
item['title'] = title
yield item
with open("body.txt", "a") as f:
f.write(response.body.decode("utf-8"))
呈现的HTML
(功能(窗口){
试一试{
if(会话存储的类型!==“未定义”){
sessionStorage.setItem('distil_referer',document.referer);
}
}捕获(e){}
})(窗口);
#位置:绝对;顶部:-5000px;左侧:-5000px}字体系列:衬线;字体大小:200px;可见性:隐藏}显示:无!重要}
敏捷的棕色狐狸跳过了懒狗。
输出:
2018-07-2517:19:58[刮屑.下载程序.重定向]
调试:将(301)重定向到
2018-07-25 17:20:05[刮屑核心引擎]调试:爬网(200)(参考:无)
2018-07-25 17:20:12[刮屑核心引擎]调试:爬网(200)(参考:无)
2018-07-25 17:20:12[scrapy.core.scraper]调试:从
{'title':无}
2018-07-25 17:20:12[刮屑芯发动机]信息:关闭卡盘(已完成)
2018-07-25 17:20:12[scrapy.extensions.feedexport]信息:存储在:data.csv中的csv提要(1项)
我意识到它在某种程度上检测到它是一个网络破坏者,但我似乎无法解决这个问题
注意:这不会发生在分类广告页面上,我可以轻松地抓取并获取每个广告的url。问题发生在我请求每个广告的url时 大多数网站现在都有
Robot.txt
文件来防止机器人抓取,因此您需要访问设置
文件,并将ROBOTSTXT\u obe
标志改为False
或者,如果要在shell中选中此选项,可以指定如下标志:
scrapy shell http://something.com --set="ROBOTSTXT_OBEY=False"