【问题标题】:Scrapy not able to go to next pageScrapy无法转到下一页
【发布时间】:2018-08-03 17:42:47
【问题描述】:

我正在学习如何使用 Scrappy,并正在尝试制作一个抓取网站链接和文本的爬虫。我的爬虫适用于http://quotes.toscrape.com/http://books.toscrape.com/,但不适用于https://pypi.org/project/wikipedia/ 或维基百科等现实生活中的示例。我无法理解是什么原因造成的。请帮帮我

我的代码

import scrapy
from scrapy.crawler import CrawlerRunner
from scrapy.utils.project import get_project_settings
from twisted.internet import reactor
from scrapy.utils.log import configure_logging

class firstSpider(scrapy.Spider):
    name = "htmlcrawler"
    start_urls = [
        'https://pypi.org/project/wikipedia/',
    ]

    def parse(self, response):
        val1=response.css("p.text::text").extract_first()
        val2=response.css("span.text::text").extract_first()
        val3=response.css("pre.text::text").extract_first()
        text = str("" if val3 is None else val3) + str("" if val2 is None else val2)+str("" if val1 is None else val1)
        NEXT_PAGE_SELECTOR = '.next a ::attr(href)'
        next_page = response.css(NEXT_PAGE_SELECTOR).extract_first()
        print(next_page)
        if next_page:
           next_page = response.urljoin(next_page)
           yield{'html':next_page,'text':text}
           yield scrapy.Request(next_page, callback=self.parse)

def run():
    settings = get_project_settings()
    settings.set('FEED_FORMAT', 'json')
    settings.set('FEED_URI', 'result.json')
    settings.set('Depth_Limit',60)
    settings.set('DOWNLOAD_DELAY',2)
    settings.set('DUPEFILTER_CLASS','scrapy.dupefilters.BaseDupeFilter')

    configure_logging()
    runner = CrawlerRunner(settings)
    runner.crawl(firstSpider)

    d = runner.join()
    d.addBoth(lambda _: reactor.stop())

    reactor.run()
if __name__=="__main__":
    run()

我正在从 Atom Hydrogen 开始斗志昂扬。

编辑

我更改了欺骗过滤器类并尝试从https://blog.siliconstraits.vn/building-web-crawler-scrapy/ 对我的链接收集器进行一些更改,但它仍然无法正常工作。

【问题讨论】:

    标签: python web-scraping scrapy


    【解决方案1】:

    它正在抓取,但由于您正在发送对同一页面 (#content) 的请求而停止。

    Scrapy 默认启用DupeFilter

    【讨论】:

    • 如何更改我的代码以使其转到其他网站,我不明白为什么下一页没有另一个页面的价值
    • @NiteyaShah pypi.org/project/wikipedia 没有下一页
    • 页面中有
    • 您正在寻找下一页“.next a”您正在抓取的页面中没有这样的元素...@NiteyaShah
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 2015-03-22
    相关资源
    最近更新 更多