【问题标题】:Scrapy Scrape Table DataScrapy 刮表数据
【发布时间】:2020-06-10 22:43:57
【问题描述】:

我是编码的初学者,现在我开始使用 Python 和 Scrapy,这是我的第一个代码。

针对以下问题运行,即我正在抓取的表格不是在带有标题/索引的列中格式化,而是在字符串中,因为每个页面都有可变数量的列和行,之后很难将所有内容拆分为 .CSV 或JSON 作为属性会混在一起。

示例:https://www.kavalier.cz/en/lab-burners-sp292.html

列:

代码
类型
压力 (Pa)
消耗量 (Nm3/h)
输出 (W)
重量(克)

https://www.kavalier.cz/en/desiccator-with-glass-knob-sp94.html

列:

代码
号码
类型
d1 (mm)
d2 (mm)
高度(毫米)
包装(个)

    #Open product page
def parse(self, response):
    urls = response.css('a.btn.btn-default::attr(href)').extract()
    for url in urls:
        url = response.urljoin(url)
        yield scrapy.Request(url=url, callback=self.parse_details)


    #Pagination
    next_page_url = response.css('a.page-link.next::attr(href)').extract_first()
    if next_page_url:
        next_page_url = response.urljoin(next_page_url)
        yield scrapy.Request(url=next_page_url, callback=self.parse)

#Product Details
def parse_details(self, response):
    yield {
    'Product_Name': response.css('.content > h2::text').extract_first(),
    'Category': response.css('.breadcrumb > li:nth-child(4) > a ::text').extract_first(),
    'Image_Url': response.css('.main-img > a::attr(href)').extract_first(),
    'Table': response.xpath('//tr/td/text()').extract(),

    }`

如何调整我的代码,以便计算所有变量表标题并将其放入列 + 数据中。

【问题讨论】:

    标签: python dataframe web-scraping html-table scrapy


    【解决方案1】:

    我假设您正在尝试从网站抓取表数据,在这种情况下,可以使用以下代码。它会为您轻松完成工作。

    import requests
    import pandas as pd
    url = 'https://www.kavalier.cz/en/desiccator-with-glass-knob-sp94.html'
    html = requests.get(url).content
    df_list = pd.read_html(html)
    df = df_list[-1]
    print(df)
    

    【讨论】:

    • 如何将其与我的脚本结合使用,或者如何在您的脚本中添加分页提示?我还需要抓取以下内容:''Product_Name': response.css('.content > h2::text').extract_first(), 'Category': response.css('.breadcrumb > li:nth-child( 4) > a ::text').extract_first(), 'Image_Url': response.css('.main-img > a::attr(href)').extract_first(),'
    猜你喜欢
    • 2020-07-28
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多