python - 从主页中提取的新页面中提取文本

标签 python web-crawler extract scrapy permalinks

我正在尝试从我从“主页”中提取的提取链接中获取文本

这个爬虫应该从“主页”获取所有链接,然后爬行所有这些链接并从中获取文本。

我希望你明白我的意思,如果不问我,我会尝试更详细地解释

编辑:

所以我阅读了更多关于 scrapy 的内容,并找到了此页面 https://scrapy.readthedocs.org/en/latest/topics/spiders.html?highlight=crawlspider#crawling-rules 我读了“SitemapSpider”,我想这可能是我需要用于解决此问题的蜘蛛

蜘蛛文件 *已编辑*

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

项目文件

from scrapy.item import Item, Field

class CraigslistRandstadItem(Item):
  title = Field()
  link = Field()

最佳答案

从默认的parse()函数开始,每个spider函数都可以产生一些Item/s的组合。和/或Request/s ,请注意,如果您想返回多个项目/请求,则必须 yield 而不是 return

scrapy 然后负责将项目发送到 pipelines并调用这些请求

注意创建请求时应给出的callback参数,这是scrapy将通过响应调用的函数。

最后,scrapy 会跟踪请求,并确保它们不会被多次调用,除非您在请求上设置 dont_filter=True

关于python - 从主页中提取的新页面中提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20377646/

相关文章:

python - Scrapy 没有按顺序抓取后续页面

c# - 使用 .Net c# 从 PDF 中提取图像

python - 新的数据框架,其中包含付款当月所支付债务的百分比

python - 像调用内联函数一样调用 python 函数

python - MySQL 服务器已消失 ConnectionResetError 10054 Flask SqlAlchemy

python - 如何在 SQLAlchemy 更新时更新相关对象?

python - Scrapy和 Selenium : How to call a method in a loop

java - 网络抓取工具不创建 CSV 文件

sql - 从字符串中提取值 PostgreSQL

linux - 如何提取tar文件?