我创建了一个蜘蛛程序,可以成功地从单个页面提取所需的数据,现在我需要它来爬行多个相似的页面并执行相同的操作。
起始页面将为this one,这里列出了游戏中的许多独特物品(Araku tiki,sidhbreath等),我希望蜘蛛抓取所有这些物品。
考虑到作为起始页,如何识别要跟随的链接?
这是我希望其遵循的前3个链接的xpath:
//*[@id="mw-content-text"]/div[3]/table/tbody/tr[1]/td[1]/span/span[1]/a[1]
//*[@id="mw-content-text"]/div[3]/table/tbody/tr[2]/td[1]/span/span[1]/a[1]
//*[@id="mw-content-text"]/div[3]/table/tbody/tr[3]/td[1]/span/span[1]/a[1]
如您所见,中间的数字在增加,依次为1、2、3等。如何抓取这些页面?
以下是我为第一项Araku Tiki工作的代码片段,其页面设置为开始:
import scrapy
from PoExtractor.items import PoextractorItem
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
class RedditSpider(scrapy.Spider):
name = "arakaali"
# allowed_domains = ['pathofexile.gamepedia.com']
start_urls = ['https://pathofexile.gamepedia.com/Araku_Tiki']
rules = (
Rule(LinkExtractor(allow=(), restrict_xpaths=()), callback="parse",
follow=True),
)
def parse(self, response):
item = PoextractorItem()
item["item_name"] = response.xpath("//*[@id='mw-content-text']/span/span[1]/span[1]/text()[1]").extract()
item["flavor_text"] = response.xpath("//*[@id='mw-content-text']/span/span[1]/span[2]/span[3]/text()").extract()
yield item
请注意:我也无法使其遵循起始页中的所有链接,仅当起始页包含所请求的数据时,我的代码才有效。
在此先感谢您的答复。
答案 0 :(得分:0)
您可以通过多种方式发送请求。
1。由于您使用的是scrapy,因此可以使用以下代码
UIPickerView
parse_page1将请求发送到url,您将在parse_page2函数中获得响应。
2。您甚至可以使用python请求模块发送请求,
if uipicker.gettext ()! = "mystring" {
uipicker.selectext("mystring)
}
如果对此有任何疑问,请发表评论,谢谢