基于python获取某东信息商品信息

import requests
from bs4 import BeautifulSoup
import xlwt
def get_html(url):
    # 模拟浏览器访问
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53'}
    print("--> 正在获取网站信息")
    response = requests.get(url, headers=headers)  # 请求访问网站
    if response.status_code == 200:
        html = response.text  # 获取网页源码
        return html  # 返回网页源码
    else:
        print("获取网站信息失败!")
if __name__ == '__main__':
    # 创建workbook,就是创建一个Excel文档
    write_work = xlwt.Workbook(encoding='ascii')
    # 添加一张单
    write_sheet = write_work.add_sheet("sheet1")
    # 创建表头
    write_sheet.write(0, 0, label='商品编号')      # 第1行 第1列 写入内容'商品编号'
    write_sheet.write(0, 1, label='商品名称')      # 第1行 第2列 写入内容'商品名称'
    write_sheet.write(0, 2, label='价格')         # 第1行 第4列 写入内容'价格'
    write_sheet.write(0, 3, label='商家')         # 第1行 第5列 写入内容'商家'
    write_sheet.write(0, 4, label='商品详情地址')   # 第1行 第6列 写入内容'商品详情地址'
    # 记录当前行数
    _current_row = 0
    i=0
    k=0
    j=0
    for k in range(0,5):
        i = 3+k*2
        j = 56+k*60
        # 搜索关键字
        keyword = 'AJ1'
        # 搜索地址
        search_url= 'https://search.jd.com/Search?keyword=%s&suggest=1.his.0.0&wq=AJ1&pvid=65892364c2604d5897754ab21bed6d22&page=%d&s=%d&click=1'%(keyword,i,j)
        html = get_html(search_url)
        # 初始化BeautifulSoup库,并设置解析器
        soup = BeautifulSoup(html, 'lxml')
        # 商品列表
        goods_list = soup.find_all('li', class_='gl-item')
        # 打印goods_list到控制台
        for li in goods_list:  # 遍历父节点
            # 由于我们第一行已经写入了表头。所以这里0+1,就是从第1行开始,后面每次循环+1
            _current_row += 1
            if _current_row == 29:
                break
            # 商品编号
            no = li['data-sku']
            # 商品名称
            name = li.find(class_='p-name p-name-type-2').find('em').get_text()
            # 价格
            price = li.find(class_='p-price').find('i').get_text()
            # 商家
            shop = li.find(class_='p-shop').find('a').get_text()
            # 商品详情地址
            detail_addr = li.find(class_='p-name p-name-type-2').find('a')['href']
 # 写入Excel
            write_sheet.write(_current_row, 0, label=no)
            write_sheet.write(_current_row, 1, label=name)
            write_sheet.write(_current_row, 2, label=price)
            write_sheet.write(_current_row, 3, label=shop)
            write_sheet.write(_current_row, 4, label=detail_addr)
    # 保存文件,使用的是相对目录(也可以使用绝对路径),会保存在当前文件的同目录下。文件名为读取多个商品页面1.xls,必须是.xls后缀
    write_work.save("./读取多个商品页面1.xls")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员奇奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值