我试图从我从“主页”提取的链接中获取文本
这个爬虫程序从“主页”获取所有的te链接,然后抓取所有这些链接并从中获取文本。在
我希望你能理解我的意思,如果不问我那我尽量解释得更详细
编辑:
所以我读了更多关于scrapy的文章,找到了这个页面https://scrapy.readthedocs.org/en/latest/topics/spiders.html?highlight=crawlspider#crawling-rules 我读了“网站地图蜘蛛”,我想这可以是蜘蛛,我需要使用这个问题
蜘蛛文件*编辑*
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from craigslist_randstad.items import CraigslistRandstadItem
class MySpider(BaseSpider):
name = "craig"
allowed_domains = ["randstad.nl"]
start_urls = ["http://www.randstad.nl/mwp2/faces/baanZoeken?afstand=10&pagina=1&_adf.ctrl-state=sb0riset7_4&sc=0&filters=vakgebied!5626&_afrLoop="]
def parse(self, response):
sel = Selector(response)
link =
for link in sel.xpath("//div[@class='search-result af_panelGroupLayout']"):
link = sel.xpath(".//a[contains(@class, 'outer-read-more-link')]/@href").extract()
yield Request(link, callback=self.parse)
print len(link)
text_list = sel.xpath('//div[@id="basePage:page:twoColumn:r2:0:functieOmschrijvingPanel::content"]/text()').extract()
if text_list:
text = '\n'.join(text_list)
item = CraigItem()
item['link'] = response.url
item['title'] = text
yield item
项目文件
^{pr2}$
从默认的}
parse()
函数开始,每个spider函数都可以产生一些Item/s和/或{a2}的组合,请注意,如果要返回多个项/请求,则必须yield
,而不是{scrapy负责将项目发送到pipelines,并调用这些请求
注意在创建请求时应该给出的
callback
参数,这是scray将随响应调用的函数。在最后,scrapy跟踪请求并确保它们不会被多次调用,除非您在请求上设置
dont_filter=True
。在Guy给了你一个很好的解释,下面是一个例子,可以提取一些数据,指导你进行更复杂的报废:
首先,创建项目并访问其目录:
其次,编辑文件
^{pr2}$items.py
:第三,创造蜘蛛。你可以用最基本的任务来完成这个简单的任务:
第四,编辑它,
spiders/craig_spider.py
:注意
提取链接及以后
没有什么意义,因为
//a[...]
将从根元素而不是从links
子树中搜索所有锚定,所以我省略了这里的第一个搜索。在还请注意,我执行了两个不同的
xpath
搜索,一个返回(yield
)链接以再次解析(callback
),另一个在信息页面中提取整个文本,创建项并返回它。在运行方式如下:
这将创建一个
json
格式的文本文件,如下所示:最后一点说明:这个例子是用
0.20
版本的scrapy完成的。它更改用于提取数据的类。现在它被称为Selector
。你必须把它翻译成一个较低的版本,但是阅读文档很容易。在相关问题 更多 >
编程相关推荐