草庐IT

python - 让 scrapy spider 爬取整个站点

我正在使用scrapy来抓取我拥有的旧网站,我正在使用下面的代码作为我的蜘蛛。我不介意为每个网页输出文件,或者包含其中所有内容的数据库。但是我确实需要能够让蜘蛛抓取整个东西,而不必输入我目前必须做的每一个urlimportscrapyclassDmozSpider(scrapy.Spider):name="dmoz"allowed_domains=["www.example.com"]start_urls=["http://www.example.com/contactus"]defparse(self,response):filename=response.url.split("/"

python - scrapy如何使用规则?

我是Scrapy的新手,我想了解如何在CrawlSpider中使用这些规则。如果我有一条规则,我要在亚利桑那州图森的纸杯蛋糕列表中爬取黄页,那么生成URL请求如何激活该规则-具体来说,它如何激活restrict_xpath属性?谢谢。 最佳答案 CrawlSpider的规则属性指定如何从页面中提取链接以及应为这些链接调用哪些回调。默认处理它们parse()该类中实现的方法--lookheretoreadthesource.因此,无论何时您想要触发URL的规则,您只需要生成一个scrapy.Request(url,self.parse

python - 当脚本在根目录之外时获取 scrapy 项目设置

我制作了一个Scrapy蜘蛛,它可以从位于项目根目录中的脚本成功运行。由于我需要从同一个脚本运行来自不同项目的多个蜘蛛(这将是一个根据用户请求调用脚本的django应用程序),我将脚本从其中一个项目的根目录移动到父目录。由于某种原因,该脚本不再能够获取项目的自定义设置,以便将抓取的结果通过管道传输到数据库表中。这是我用来从脚本运行蜘蛛的scrapy文档中的代码:defspiderCrawl():settings=get_project_settings()settings.set('USER_AGENT','Mozilla/4.0(compatible;MSIE7.0;WindowsN

python - 如何创建自定义 Scrapy Item Exporter?

我正在尝试创建一个基于JsonLinesItemExporter的自定义ScrapyItemExporter,这样我就可以稍微改变它生成的结构。我已阅读此处的文档http://doc.scrapy.org/en/latest/topics/exporters.html但它没有说明如何创建自定义导出器、将其存储在何处或如何将其链接到您的管道。我已经确定了如何使用FeedExporter进行定制,但这不符合我的要求,因为我想从我的管道中调用这个导出器。这是我想出的代码,它存储在项目根目录中名为exporters.py的文件中fromscrapy.contrib.exporterimport

python - 如何在 scrapy 中获取原始 start_url(在重定向之前)

我正在使用Scrapy来抓取一些页面。我从Excel工作表中获取start_urls,我需要将url保存在项目中。classabc_Spider(BaseSpider):name='abc'allowed_domains=['abc.com']wb=xlrd.open_workbook(path+'/somefile.xlsx')wb.sheet_names()sh=wb.sheet_by_name(u'Sheet1')first_column=sh.col_values(15)start_urls=first_columnhandle_httpstatus_list=[404]def

python - 对于 scrapy/selenium 有没有办法返回到上一页?

我基本上有一个start_url,它有我的javascript搜索表单和按钮,因此需要selenium。我使用selenium在我的选择框对象中选择适当的项目,然后单击搜索按钮。接下来的页面,我做了一些scrapy魔术。但是,现在我想回到原来的start_url并填写一个不同的对象等,然后重复直到不再。基本上,我已经尝试制作一个for循环并试图让浏览器返回到原始response.url,但不知何故它崩溃了。我可能会尝试在顶部有一个重复的start_url列表,以便scrapy解析,但我不确定这是否是最好的方法。在我的情况下我能做什么? 最佳答案

python - Scrapy - 没有名为 mail.smtp 的模块

系统:Ubuntu14.04我使用命令sudopipinstallscrapy安装了scrapy。我正在学习位于here的教程.当我在this运行命令scrapycrawldmoz时步骤,我收到以下错误:2015-07-0415:28:58[scrapy]INFO:Scrapy1.0.1started(bot:tutorial)2015-07-0415:28:58[scrapy]INFO:Optionalfeaturesavailable:ssl,http112015-07-0415:28:58[scrapy]INFO:Overriddensettings:{'NEWSPIDER_MO

python - Scrapy crawl命令输出如何保存

我正在尝试保存我尝试过的scrapycrawl命令的输出scrapycrawlsomeSpider-osome.json-tjson>>some.text但它不起作用......有人能告诉我如何将输出保存到文本文件......我的意思是scrapy打印的日志和信息...... 最佳答案 您可以将这些行添加到您的settings.py:LOG_STDOUT=TrueLOG_FILE='/tmp/scrapy_output.txt'然后开始正常抓取:scrapycrawlsomeSpider

python - 安装 scrapy 时命令 'gcc' 失败,退出状态为 1 错误

当我想安装Scrapy时遇到这个错误:warning:nopreviously-includedfilesfoundmatching'*.py'Requirementalreadysatisfied(use--upgradetoupgrade):pyOpenSSLin/usr/local/lib/python2.7/site-packages/pyOpenSSL-0.14-py2.7.egg(fromScrapy)Requirementalreadysatisfied(use--upgradetoupgrade):cssselect>=0.9in/usr/local/lib/pytho

python - Django自定义管理命令运行Scrapy : How to include Scrapy's options?

我希望能够运行Scrapywebcrawlingframework从Django内部。Scrapy本身只提供了一个命令行工具scrapy来执行它的命令,即该工具并不是有意编写为从外部程序调用。用户MikhailKorobov想出了一个nicesolution,即从Django自定义管理命令调用Scrapy。为方便起见,我在这里重复他的解决方案:#-*-coding:utf-8-*-#myapp/management/commands/scrapy.pyfrom__future__importabsolute_importfromdjango.core.management.baseim