美文网首页
python抓取亚马逊商品信息

python抓取亚马逊商品信息

作者: 追梦人在路上不断追寻 | 来源:发表于2023-06-26 12:29 被阅读0次

python抓取网页数据,主要是以下几个步骤。

  1. 安装所需的 Python 包 python -m pip install requests beautifulsoup4
  2. 设置请求头部,防止被拦截。
  3. 分析商品页面信息,得到数据的构造结构。
  4. 通过选择器获取到需要的数据。
  5. 进行抓取调试。
  6. 抓取数据,进行保存。

下面是主要的抓取代码,安装好想要的扩展包之后,可以直接运行,进行调试。

import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin
import pandas as pd

custom_headers = {
    "accept-language": "en-GB,en;q=0.9",
    "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
}

def get_product_info(url):
    response = requests.get(url, headers=custom_headers)
    if response.status_code != 200:
        print("Error in getting webpage")
        exit(-1)

    soup = BeautifulSoup(response.text, "lxml")

    title_element = soup.select_one("#productTitle")
    title = title_element.text.strip() if title_element else None

    price_element = soup.select_one("#price_inside_buybox")
    price = price_element.text if price_element else None

    rating_element = soup.select_one("#acrPopover")
    rating_text = rating_element.attrs.get("title") if rating_element else None
    rating = rating_text.replace("out of 5 stars", "") if rating_text else None

    image_element = soup.select_one("#landingImage")
    image = image_element.attrs.get("src") if image_element else None

    description_element = soup.select_one("#productDescription")
    description = description_element.text.strip() if description_element else None

    return {
        "title": title,
        "price": price,
        "rating": rating,
        "image": image,
        "description": description,
        "url": url,
    }

def parse_listing(listing_url):

    response = requests.get(listing_url, headers=custom_headers)
    soup_search = BeautifulSoup(response.text, "lxml")
    link_elements = soup_search.select("[data-asin] h2 a")
    page_data = []
    for link in link_elements:
        full_url = urljoin(listing_url, link.attrs.get("href"))
        print(f"Scraping product from {full_url[:100]}", flush=True)
        product_info = get_product_info(full_url)
        page_data.append(product_info)

    next_page_el = soup_search.select_one('a:contains("Next")')
    if next_page_el:
        next_page_url = next_page_el.attrs.get('href')
        next_page_url = urljoin(listing_url, next_page_url)
        print(f'Scraping next page: {next_page_url}', flush=True)
        page_data += parse_listing(next_page_url)

    return page_data

def main():
    data = []
    search_url = "https://www.amazon.com/s?k=bose&rh=n%3A12097479011&ref=nb_sb_noss"
    data = parse_listing(search_url)
    df = pd.DataFrame(data)
    df.to_csv('amz.csv')

if __name__ == '__main__':
    main()

相关文章

  • 需要些例子

    教您使用java爬虫gecco抓取JD全部商品信息教您使用DynamicGecco抓取JD全部商品信息 Gecco...

  • Python爬虫学习 爬取京东商品

    1. 本节目标 以抓取京东 App 的商品信息和评论为例,实现 Appium 和 mitmdump 二者结合的抓取...

  • 三步走,教你定制自己的个性python爬虫,代码都省了有木有~

    想抓取各大招聘网站上的职位信息吗,想抓取各大电商网站上的商品信息吗,想抓取1024上各种不可描述吗?看这里,看这里...

  • Python实战计划学习笔记(11)第二周作业

    任务 抓取赶集网本站所有商品信息 思路 抓取所有频道URL,一共20个 每个频道读取至少70页商品URL信息,排除...

  • Python实用练手小案例

    抓取网页信息,并生成txt文件内容!Python抓取网页技能——Python抓取网页就是我们常看见的网络爬虫,我们...

  • 京东商品评论爬虫

    抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化。下面是要抓取的商品信息,一款女士文胸。这个商品共有红色...

  • selenium抓取淘宝商品信息

    利用selenium抓取淘宝商品搜索页的信息。试了一下调用chrome,速度确实不快。后续可以通过使用Phanto...

  • 练习抓取淘宝商品信息

    准备 查看淘宝的页面是不是静态页面,结果是静态页面。想要抓取的是淘宝搜索某个商品的信息,所以要找到淘宝的搜索接口,...

  • Python抓取百度百科数据

    抓取策略 确定目标:确定抓取哪个网站的哪些页面的哪部分数据。本实例抓取百度百科python词条页面以及python...

  • Python抓取百度百科数据

    抓取策略 确定目标:确定抓取哪个网站的哪些页面的哪部分数据。本实例抓取百度百科python词条页面以及python...

网友评论

      本文标题:python抓取亚马逊商品信息

      本文链接:https://www.haomeiwen.com/subject/nxowydtx.html