gpt4 book ai didi

python - 使用Scrapy抓取数据

转载 作者:太空宇宙 更新时间:2023-11-03 15:43:46 25 4
gpt4 key购买 nike

我正在尝试使用 scrapy 抓取数据。但在编辑代码时遇到麻烦。这是我所做的实验:

import scrapy

class BlogSpider(scrapy.Spider):
name = 'blogspider'
start_urls = ['http://anon.example.com/']

def parse(self, response):
for title in response.css('h2'):
yield {'Agent-name': title.css('a ::text').extract_first()}

next_page = response.css('li.col-md-3 ln-t > div.cs-team team-grid > figure > a ::attr(href)').extract_first()
if next_page:
yield scrapy.Request(response.urljoin(next_page), callback=self.parse)

我使用了 scrapy.org 网站上的示例并尝试对其进行修改。此代码的作用是从给定页面中提取所有代理的名称。
但我希望 scrapy 应该进入代理页面并从那里提取其信息。
举例来说:

Name: name of the agent
Phone: Phone Number
Email: email address
website: URL of website .. etc

希望这能澄清我的问题。我想有一个解决这个问题的方法。

最佳答案

import scrapy

class BlogSpider(scrapy.Spider):
name = 'blogspider'
start_urls = ['http://anon.example.com']


# get 502 url of name
def parse(self, response):
info_urls = response.xpath('//div[@class="text"]//a/@href').extract()
for info_url in info_urls:
yield scrapy.Request(url=info_url, callback=self.parse_inof)
# visit each url and get info
def parse_inof(self, response):
info = {}
info['name'] = response.xpath('//h2/text()').extract_first()
info['phone'] = response.xpath('//text()[contains(.,"Phone:")]').extract_first()
info['email'] = response.xpath('//*[@class="cs-user-info"]/li[1]/text()').extract_first()
info['website'] = response.xpath('//*[@class="cs-user-info"]/li[2]/a/text()').extract_first()
print(info)

名称可以在详细信息页面中找到,因此第一步,我们只收集所有详细信息网址。

然后我们访问所有网址并获取所有信息。

日期可能需要清理,但想法很明确。

关于python - 使用Scrapy抓取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41936887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com