【python – 重定向后的Scrapy回调】教程文章相关的互联网学习教程文章

python-Scrapy-获取正在解析的项目的索引?【代码】

我正在尝试使用Scrapy从数据库加载一些XPATH规则. 到目前为止,我编写的代码运行良好,但是经过一些调试后,我意识到Scrapy正在异步解析每个项目,这意味着我无法控制要解析哪个项目的顺序. 我想做的是找出命中parse()函数的列表中当前正在解析的项,因此我可以将该索引引用到数据库中的行并获取正确的XPATH查询.我目前这样做的方式是使用一个名为item_index的变量,并在每次项目迭代后将其递增.现在我意识到这还不够,我希望有一些内部功...

Python Scrapy,从子页面返回进行抓取【代码】

我的Spider功能在页面上,我需要转到一个链接并从该页面获取一些数据以添加到我的项目中,但是我需要从父页面转到各个页面而不创建更多项目.我将如何去做,因为从我在文档中可以读到的内容,我只能以线性方式进行:parent page > next page > next page但我需要:parent page > next page> next page> next page解决方法:您应该返回Request个实例,并在meta中传递项目.并且,您必须以线性方式使其建立并构建请求和回调链.为了实现它,您可...

python-将file_name参数传递给管道以在scrapy中导出csv【代码】

我需要从命令行中获取一个自变量(-a FILE_NAME =“ stuff”),并将其应用于在pipeline.py文件中由我的CSVWriterPipeLine创建的文件. (我之所以使用pipeline.py是因为内置的导出器正在重复数据并在输出文件中重复标题.相同的代码,但是在管道中进行写入修复了它.) 我尝试从scrapy.utils.project导入get_project_settings中看到 How to access scrapy settings from item Pipeline 但是我无法从命令行更改文件名. 我还尝试实现页面上的...

python-如何在Django视图内使用参数运行Scrapy Spider【代码】

用户可以在表单中输入关键字并提交,这样我就可以在视图中获取关键字.然后,我可以使用关键字创建start_url.如何将start_url传递给抓抓的蜘蛛并启动它? 这是我的查看方法.def results(request):"""Return the search results"""key= request.GET['keyword'].strip()books = Book.objects.filter(title__contains=key)if books is None:# I want to call the scrapy spider here.passbooks = Book.objects.filter(title__contains=ke...

python-在Scrapy中使用nth-child【代码】

我正在尝试使用Python工具Scrapy提取一些html. 我的选择器如下:#navigation > nav > div.js-accordion-menu-wrapper > ul li:nth-child(n+5):nth-child(-n+10) > a::attr(href)由于某种原因,这根本不起作用.具体来说,似乎’nth-child(-n x)只是行不通.就像Scrapy可能不使用它或不允许它. 有人可以确认吗?解决方法:使用cssselect 1.0.0的Scrapy 1.2.1似乎按预期工作. 这是一个示例scrapy shell会话:In [1]: selector = scrapy.Se...

Python scrapy,如何在单个蜘蛛中的每个请求之间做一个随机延迟?

我有一个蜘蛛,我希望每个请求之间都有一个延迟,但是我不希望它是一个固定的数字,而是两个边界之间的随机时间,我该怎么做?解决方法:首先,请避免使用time.sleep,因为它会阻塞Twisted反应器,从而消除了Scrapy并发的所有优点. 默认情况下,Scrapy的DOWNLOAD_DELAY设置会在0.5 * DOWNLOAD_DELAY到1.5 * DOWNLOAD_DELAY秒之间添加随机延迟.此行为由RANDOMIZE_DOWNLOAD_DELAY设置管理,默认情况下为true. 文件:https://doc.scrapy.org/en/...

python-HTML元素的Scrapy CSS选择器,其类包含非字母数字字符【代码】

我正在使用Scrapy爬网.我试图在响应中选择一个元素. 我的响应对象包含如下所示的HTML:<html><head><title>Title goes here</title</head><body><!-- lots of stuff I am not interested in --><select class="Gy(t)"><!-- elements --></select><!-- lost more stuff of no interest to me --></body> </html>我的代码:def parse(self, response):# ....print (response.selector.css('select.Gy(t)'))我在运行代码时抛出了以下异...

python-Scrapy停止抓取,但继续爬取【代码】

我正在尝试从网站的多个页面中抓取不同的信息.在第十六页之前,所有工作:对页面进行爬网,抓取并将信息存储在我的数据库中.但是,在第16页之后,它会停止抓取,但会继续爬网.我检查了网站,并在470页中包含更多信息. HTML标签是相同的.所以我不明白为什么它停止报废. 我的密码def url_lister():url_list = []page_count = 1while page_count < 480:url = 'https://www.active.com/running?page=%s' %page_count url_list.append(url)pag...

Python分布式爬虫必学框架scrapy打造搜索引擎✍✍✍【图】

Python分布式爬虫必学框架scrapy打造搜索引擎 Python分布式爬虫打造搜索引擎Scrapy精讲—用Django实现搜索的自动补全功能 elasticsearch(搜索引擎)提供了自动补全接口 1、创建搜索自动补全字段suggest 自动补全需要用到一个字段名称为suggest类型为Completion类型的一个字段 所以我们需要用将前面的elasticsearch-dsl操作elasticsearch(搜索引擎)增加suggest类型为Completion 注意:因为elasticsearch-dsl...

python-scrapy无法抓取页面中的所有链接

我正在尝试抓取抓取ajax网站http://play.google.com/store/apps/category/GAME/collection/topselling_new_free 我想获得所有指向每个游戏的链接. 我检查页面的元素.它看起来像这样:how the page looks like 所以我想提取所有模式为/ store / apps / details?id =的链接 但是当我在外壳中运行命令时,它什么也没有返回:shell command 我也尝试过// a / @ href.也没有解决,但不知道怎么回事. >现在,我可以抓取修改后的starturl并添...

python-Scrapy视图返回空白页【代码】

我是Scrapy的新手,我只是想刮擦http://www.diseasesdatabase.com/ 当我输入scrapy view http://www.diseasesdatabase.com/时,它会显示一个空白页,但是如果我下载该页并在本地文件中进行处理,则它会照常显示.为什么会这样呢?解决方法:假装是一个提供User-Agent标头的真实浏览器:scrapy view http://www.diseasesdatabase.com/ -s USER_AGENT="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like G...

python-当Scrapy选择器返回无时,如何设置默认值【代码】

当我的xpath选择器的结果返回None时,我试图设置默认值.当某些页面中的xpath节点不存在,而我想设置例如“ N / A”或“未找到”时,就会发生这种情况. 我使用了以下代码,但我认为这不是干净高效的:value = response.xpath(property.xpath).extract_first()if(value != None):data[property.name] = response.xpath(property.xpath).extract_first() else:data[property.name] = "N/A"有任何想法吗?谢谢解决方法:无需两次查询,一个简...

python-了解重命名图像scrapy的工作方式【代码】

我看到所有问题here,但我还不了解. 实际上,下面的代码我会做我需要做的事情,除了重命名de image,所以我尝试在items.py文件中更改名称,请检查里面的注释. settings.pySPIDER_MODULES = ['xxx.spiders'] NEWSPIDER_MODULE = 'xxx.spiders' ITEM_PIPELINES = {'scrapy.pipelines.images.ImagesPipeline': 1} IMAGES_STORE = '/home/magicnt/xxx/images'items.pyclass XxxItem(scrapy.Item):# define the fields for your item here li...

python-Scrapy爬网所有站点地图链接【代码】

我想抓取他在固定站点的sitemap.xml中存在的所有链接.我遇到了Scrapy的SitemapSpider.到目前为止,我已经提取了站点地图中的所有网址.现在,我想通过站点地图的每个链接进行爬网.任何帮助将非常有用.到目前为止的代码是:class MySpider(SitemapSpider):name = "xyz"allowed_domains = ["xyz.nl"]sitemap_urls = ["http://www.xyz.nl/sitemap.xml"] def parse(self, response):print response.url解决方法:您需要添加sitemap_rules来...

python-500个scrapy请求后添加延迟【代码】

我有一个开始2000网址的列表,并且正在使用:DOWNLOAD_DELAY = 0.25 为了控制请求的速度,但我还想在n个请求之后添加更大的延迟.例如,我希望每个请求延迟0.25秒,每500个请求延迟100秒. 编辑: 样例代码:import os from os.path import join import scrapy import timedate = time.strftime("%d/%m/%Y").replace('/','_')list_of_pages = {'http://www.lapatilla.com/site/':'la_patilla', 'http://runrun.es/':'run...