在多次阅读Scrapy文档后,我仍然没有理解使用CrawlSpider规则和在回调方法上实现我自己的链接提取机制之间的区别。我正准备使用后一种方法编写一个新的网络爬虫,但只是因为我在过去使用规则的项目中有过糟糕的经历。我真的很想知道我在做什么以及为什么这样做。有人熟悉这个工具吗?感谢您的帮助! 最佳答案 CrawlSpider继承了BaseSpider。它只是添加了提取和跟踪链接的规则。如果这些规则对您来说不够灵活-使用BaseSpider:classUSpider(BaseSpider):"""myspider."""start_
如何使用Scrapy遍历网站?我想提取所有匹配http://www.saylor.org/site/syllabus.php?cid=NUMBER的站点的正文,其中NUMBER是1到400左右。我写了这个蜘蛛:fromscrapy.contrib.spidersimportCrawlSpider,Rulefromscrapy.contrib.linkextractors.sgmlimportSgmlLinkExtractorfromscrapy.selectorimportHtmlXPathSelectorfromsyllabi.itemsimportSyllabiItemclassS
我正在尝试让SgmlLinkExtractor工作。这是签名:SgmlLinkExtractor(allow=(),deny=(),allow_domains=(),deny_domains=(),restrict_xpaths(),tags=('a','area'),attrs=('href'),canonicalize=True,unique=True,process_value=None)我只是在使用allow=()所以,我输入rules=(Rule(SgmlLinkExtractor(allow=("/aadler/",)),callback='parse'),)所以,初始ur
我是scrapy的新手,我想从这个website中提取每个广告的所有内容.所以我尝试了以下方法:fromscrapy.spidersimportSpiderfromcraigslist_sample.itemsimportCraigslistSampleItemfromscrapy.selectorimportSelectorclassMySpider(Spider):name="craig"allowed_domains=["craigslist.org"]start_urls=["http://sfbay.craigslist.org/search/npo"]defparse(se
下面是我的爬虫代码,classBlurb2Spider(BaseSpider):name="blurb2"allowed_domains=["www.domain.com"]defstart_requests(self):yieldself.make_requests_from_url("http://www.domain.com/bookstore/new")defparse(self,response):hxs=HtmlXPathSelector(response)urls=hxs.select('//div[@class="bookListingBookTitle"]/a/@hr
我是scrapy的新手,我正在玩scrapyshell试图抓取这个网站:www.spiegel.de/sitemap.xml我用scrapyshell"http://www.spiegel.de/sitemap.xml"在我使用的时候一切正常response.body我可以看到整个页面,包括xml标签但是例如这个:response.xpath('//loc')根本行不通。我得到的结果是一个空数组同时response.selector.re('somevalidregexpexpression')会起作用知道可能是什么原因吗?可能与编码有关?该网站不是utf-8我在Win7上使用pyth
我想抓取一页数据(使用PythonScrapy库),而不必在页面上定义每个单独的字段。相反,我想使用元素的id作为字段名称动态生成字段。起初我认为最好的方法是建立一个收集所有数据的管道,并在收集到所有数据后将其输出。然后我意识到我需要将数据传递到项目中的管道,但我无法定义项目,因为我不知道它需要哪些字段!解决这个问题的最佳方法是什么? 最佳答案 更新:旧方法不适用于itemloaders并不必要地使事情复杂化。这是实现灵活项目的更好方法:fromscrapy.itemimportBaseItemfromscrapy.contrib.
上下文我正在运行scrapyd1.1+scrapy0.24.6和一个“selenium-scrapyhybrid”蜘蛛,它根据参数在许多域上爬行。托管scrapyd实例的开发机器是一个4核的OSXYosemite,这是我当前的配置:[scrapyd]max_proc_per_cpu=75debug=onscrapyd启动时的输出:2015-06-0513:38:10-0500[-]Logopened.2015-06-0513:38:10-0500[-]twistd15.0.0(/Library/Frameworks/Python.framework/Versions/2.7/Resou
我正在使用scrapy来抓取博客,然后将数据存储在mongodb中。起初我得到了InvalidDocument异常。对我来说很明显,数据的编码不正确。因此,在保留对象之前,在我的MongoPipeline中,我检查文档是否为“utf-8strict”,然后才尝试将对象保留到mongodb。但是我仍然收到InvalidDocument异常,这很烦人。这是我的代码,我的MongoPipeline对象将对象持久化到mongodb#-*-coding:utf-8-*-#Defineyouritempipelineshere#importpymongoimportsys,tracebackfro
我正在使用Python中的seleniumwebdriver和Proxy进行网络抓取.我想使用此抓取浏览超过10k页的单个站点。问题使用此代理我只能发送一次请求。当我在同一个链接或本网站的另一个链接上发送另一个请求时,我会收到416错误(使用防火墙阻止IP的一种)持续1-2小时。注意:我可以使用此代码抓取所有正常网站,但该网站有某种安全措施阻止我抓取。这是代码。profile=webdriver.FirefoxProfile()profile.set_preference("network.proxy.type",1)profile.set_preference("network.pr