如何使用scrapy抓取具有多个页面的网站

Th3FreeSpirit

我正在尝试使用scrapy抓取该网站(具有多个页面)。问题是我找不到下一页URL。您是否有关于如何刮擦具有多个页面(刮擦)的网站的想法,或者如何解决我在代码中遇到的错误?

我尝试了以下代码,但无法正常工作:

class AbcdspiderSpider(scrapy.Spider):
    """
    Class docstring
    """
    name = 'abcdspider'
    allowed_domains = ['abcd-terroir.smartrezo.com']

    alphabet = list(string.ascii_lowercase)
    url = "https://abcd-terroir.smartrezo.com/n31-france/annuaireABCD.html?page=1&spe=1&anIDS=31&search="
    start_urls = [url + letter for letter in alphabet]

    main_url = "https://abcd-terroir.smartrezo.com/n31-france/"


    crawl_datetime = str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
    start_time = datetime.datetime.now()

    def parse(self, response):
        self.crawler.stats.set_value("start_time", self.start_time)
        try:
            page = response.xpath('//div[@class="pageStuff"]/span/text()').get()
            page_max = get_num_page(page)

            for index in range(page_max):
                producer_list = response.xpath('//div[@class="clearfix encart_ann"]/@onclick').getall()
                for producer in producer_list:
                    link_producer = self.main_url + producer
                    yield scrapy.Request(url=link_producer, callback=self.parse_details)

                next_page_url = "/annuaireABCD.html?page={}&spe=1&anIDS=31&search=".format(index)

                if next_page_url is not None:
                    yield scrapy.Request(response.urljoin(self.main_url + next_page_url))

        except Exception as e:
            self.crawler.stats.set_value("error", e.args)

我收到此错误:

'error': ('range() integer end argument expected, got unicode.',)
吉尔·耶尔

错误在这里:

page = response.xpath('//div[@class="pageStuff"]/span/text()').get()
page_max = get_num_page(page)

范围函数需要一个整数值(1,2,3,4等),而不是一个unicode字符串('Page 1/403')

我对范围误差的建议是

page = response.xpath('//div[@class="pageStuff"]/span/text()').get().split('/ ')[1]

for index in range(int(page)):
    #your actions

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从具有多个页面的网站抓取数据

如何在R中有多个页面的网站上抓取特定信息

如何使用python和beautifulsoup4循环抓取网站中多个页面的数据

python 抓取具有多个页面的站点

使用rvest抓取带有登录页面的网站

如何列出使用 Scrapy 抓取数据的页面的 URL?

从具有多个页面结果的网站进行网页抓取

如何从具有多个“选择”字段的网站中抓取?

如何使用循环抓取页面的所有项目

使用URL中的变量循环抓取网站中多个页面的数据

如何将具有多个页面和内部链接的网站抓取到 Pandas 数据框中?

如何使用python从具有多个动态选择字段的页面中抓取数据?

如何解析具有多个页面的XML结果

如何使用Java和itext从Graphics对象创建具有多个页面的PDF

如何使用python请求登录具有多个页面的CAS?

如何使用scrapy抓取angularjs网站?

需要帮助使用 Scrapy 抓取此页面的内容

网页抓取具有多个表的页面

具有多个部分的网页抓取页面

具有多个页面的S3静态网站(例如SPA)

如何从网站的多个不相关部分抓取数据(使用 Scrapy)

Scrapy,抓取一个包含多个页面的动态页面

网站抓取多个相似页面

如何浏览允许目录浏览但具有默认页面的网站?

抓取具有多个表且没有类的网站

使用scrapy.Spider 抓取单个页面有效但不适用于使用CrawlSpider 的整个网站

具有4个水平流体页面的网站

如何使用 Scrapy 使用 Ajax 无限滚动抓取网站

如何建立具有多个页面和一个页面应用程序的网站?