刮脚本,如何找到特定的关键字和返回或打印u

2024-09-27 23:26:20 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,所以我要把这个编辑完整。我已经使脚本部分工作,我可以启动它没有任何问题,这是脚本。粘贴链接在这里:http://pastebin.com/SKa5Wh1h,您可以在命令行中看到我得到的内容。我确信正在搜索的关键字在这些链接中,因为我也尝试过其他单词,但它没有下载它们。在

import scrapy

import requests
from scrapy.http import Request

import scrapy
from FinalSpider.items import Page  # Defined in items.py

URL = "http://url.com=%d"
starting_number = 60000
number_of_pages = 100
class FinalSpider(scrapy.Spider):
name = "FinalSpider"
allowed_domains = ['url.com']
start_urls = [URL % starting_number]

def __init__(self):
    self.page_number = starting_number
def start_request(self):
    # generate page IDs from 1000 down to 501
    for i in range (self.page_number, number_of_pages, -1):
        yield Request(url = URL % i, callback=self.parse)


def parse(self, response):
    for link in response.xpath('//a[text()="Amount"]/@href').extract():
        yield Page(url=link)

Tags: infromimportself脚本comhttpurl
1条回答
网友
1楼 · 发布于 2024-09-27 23:26:20

你问了两件事

  1. 如何提取元素?在

您提供的xpath是无效的xpath表达式。在

如果您想在文本中找到一个a标记,比如<a href="something"> 100.00 </a>,那么正确的xpath应该是'//a[contains(text(), "100.00")]'。注意contains的用法,如果有精确的文本,可以使用'//a[text() == "100.00"]'。在

  1. 你怎么处理找到的元素?在

在Scrapy中,通常创建一个Item类,该类将保存您已废弃的数据,该类由您定义的Field进行逻辑结构。在

因此,首先,创建一个Item子类,其中有一个urlField,在spider中,return或{}一个该Item的新实例,字段url设置为页面中找到的值。在

把这些放在一起

您必须创建一个Item,如图here

import scrapy

class Page(scrapy.Item):
    url = scrapy.Field()

然后,在spider中从response对象提取所有有意义的数据。看看例子here来获得一种感觉。但一般来说你的代码是

^{pr2}$

相关问题 更多 >

    热门问题