gpt4 book ai didi

python - Scrapy Scraper 不会抓取除比第一页更远的内容

转载 作者:行者123 更新时间:2023-12-01 08:53:50 26 4
gpt4 key购买 nike

我正在尝试创建一个在名为 https://en.wikipedia.org/wiki/North_Korea_and_weapons_of_mass_destruction 的维基百科页面上启动的蜘蛛。然后抓取我提供给它的文本和图像文件。它似乎有效,但我只得到第一个响应(不会转到以下页面。任何帮助将不胜感激。

这是我的代码:

import scrapy
from scrapy.spiders import Request
from scrapy.linkextractors import LinkExtractor
import re

BASE_URL = 'http://en.wikipedia.org'
PROTOCOL = 'https:'


class MissleSpiderBio(scrapy.Spider):

name = 'weapons_bio'
allowed_domains = ['https://en.wikipedia.org']
start_urls = ['https://en.wikipedia.org/wiki/...'] //url above


def parse(self, response):
filename = response.url.split('/')[-1]
h4s = response.xpath('//h4')

text = response.css("#mw-content-text > div > p:nth- \
child(2)::text").extract()
if text:
images = response.css("#mw-content-text > div > table>
tbody > tr:nth-child(2) > td > a >
img::attr(src)").extract()
yield {'body': text, 'image_urls':[PROTOCOL+
images[0]]}

else:
yield {'empty': "not found"}

for next_page in response.css('#mw-content-text > div > ul
> li > b > a::attr(href)').extract():
print(BASE_URL + next_page)
yield response.follow(BASE_URL + next_page, \
callback=self.parse)

最佳答案

有几件事你可以尝试

而不是

中的 http
BASE_URL = 'http://en.wikipedia.org'

设置为

BASE_URL = 'https://en.wikipedia.org'

第二件事,注释掉这一行

allowed_domains = ['https://en.wikipedia.org']

我认为这就是为什么它没有点击链接

关于python - Scrapy Scraper 不会抓取除比第一页更远的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52917123/

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