scrapy : 如何抓取 <ul> <li>

pra*_*hox 6 html scrapy web-scraping

我正在学习如何使用 scrapy api 进行抓取。

我想将文本刮入<h2 class >并将链接刮入<a href >但它不起作用(附件)

html页面

我试图提取<a >标签中的文本

import scrapy

class PriceSpider(scrapy.Spider):
    name = "annonce"  #name of spider

    def start_requests(self):
        urls = [
            'https://www.leboncoin.fr/ventes_immobilieres/offres/ile_de_france/?th=1',

        ]
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        for annonce in response.css('section.tabsContent li').extract():
            yield{
                'title':annonce.css('a ::title').extract_first(),
                }
Run Code Online (Sandbox Code Playgroud)

SIM*_*SIM 3

尝试一下。你的 css 选择器有严重缺陷。

import scrapy

class PriceSpider(scrapy.Spider):
    name = "annonce"  #name of spider

    def start_requests(self):
        urls = [
            'https://www.leboncoin.fr/ventes_immobilieres/offres/ile_de_france/?th=1',

        ]
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        for annonce in response.css('.list_item'):
            yield{
                'link':annonce.css('::attr(href)').extract_first(),
                'title':annonce.css('.item_title::text').extract_first().strip(),
                }
Run Code Online (Sandbox Code Playgroud)

还有一件事。打开您的settings.py文件并使其:

ROBOTSTXT_OBEY = False
Run Code Online (Sandbox Code Playgroud)