Python 采集京东手机商品标题,价格,评论,商品图片等

这段Python代码主要用于从京东网站的搜索结果页面抓取关于手机商品的信息,包括商品标题,价格,评论数以及商品图片的链接。

代码都测试验证过都能正常跑通,实现效果,由于各大网站防爬机制随时可能更新,代码可能失效。思路可以参考

它首先向给定的URL发出请求,然后使用BeautifulSoup库来解析返回的HTML文档。在解析过程中,它查找包含商品信息的HTML元素,并从这些元素中提取出我们需要的信息。提取出的信息会被保存为一个Python列表,每一项都代表一个商品,每一项都是一个包含商品标题,价格,评论数以及商品图片链接的列表。商品采集封装API测试

名称 类型 必须 描述
key String 调用key(必须以GET方式拼接在URL中)
secret String 调用密钥
api_name String API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]
cache String [yes,no]默认yes,将调用缓存的数据,速度比较快
result_type String [json,jsonu,xml,serialize,var_export]返回数据格式,默认为json,jsonu输出的内容中文可以直接阅读
lang String [cn,en,ru]翻译语言,默认cn简体中文
version String API版本

然后,这个程序使用Pandas库将提取出的数据转换为一个DataFrame对象,这样就可以方便地处理数据,比如进行排序,过滤,统计等操作。最后,它将DataFrame对象保存为一个Excel文件,可以直接在Excel中打开查看。

在实现过程中,这段代码使用了requests库来发出HTTP请求,BeautifulSoup库来解析HTML文档,Pandas库来处理和保存数据。

你需要安装如下几个Python库:

requests:发送HTTP请求

BeautifulSoup:解析HTML代码

pandas:处理数据和保存数据到Excel

openpyxl:pandas的依赖库,用于写入Excel文件

如果这些库尚未安装,可以使用pip进行安装:

pip install requests beautifulsoup4 pandas openpyxl
import requestsfrom bs4 import BeautifulSoupimport pandas as pd# Xpanx.com 专业网络爬虫程序定制,加微信 LiteMango(付费)def get_data(url):    headers = {        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36",        "Referer": "https://search.jd.com"    }    r = requests.get(url, headers=headers)    r.encoding = 'utf-8'    soup = BeautifulSoup(r.text, "html.parser")    return soup
def parse_data(soup):    data = []    items = soup.find_all('li', {'class': 'gl-item'})    for item in items:        try:            title = item.find('div', {'class': 'p-name p-name-type-2'}).a.em.text            price = item.find('div', {'class': 'p-price'}).strong.i.text            comment = item.find('div', {'class': 'p-commit'}).strong.a.text            img_url = item.find('div', {'class': 'p-img'}).a.img['data-lazy-img']            data.append([title, price, comment, img_url])        except AttributeError:            continue    return data
def data_to_excel(data):    df = pd.DataFrame(data, columns=['Title', 'Price', 'Comment', 'Image URL'])    df.to_excel('jd_products.xlsx', index=False)
if __name__ == "__main__":    url = "https://search.jd.com/Search?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8&wq=%E6%89%8B%E6%9C%BA&pvid=541bde5713154895ad650c43c4167c10"    soup = get_data(url)    data = parse_data(soup)    data_to_excel(data)

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 17:00:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 17:00:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 17:00:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 17:00:04       20 阅读

热门阅读

  1. 【无标题】数字孪生和可视化区别

    2024-04-23 17:00:04       13 阅读
  2. 企业增长的催化剂—《行列视》

    2024-04-23 17:00:04       13 阅读
  3. 可穿戴个人漂浮设备CE认证(EU) 2016/425指令

    2024-04-23 17:00:04       11 阅读
  4. Python中pop()函数用法

    2024-04-23 17:00:04       12 阅读
  5. 服务器清理挖矿问题

    2024-04-23 17:00:04       9 阅读
  6. 蚁狮优化算法(ALO算法)学习

    2024-04-23 17:00:04       12 阅读
  7. MySQL创建帐号和权限设定

    2024-04-23 17:00:04       11 阅读
  8. 【设计模式】10、composite 组合模式

    2024-04-23 17:00:04       13 阅读
  9. 【华为OD机试】跳马【C卷|200分】

    2024-04-23 17:00:04       12 阅读
  10. 笔记:XSS攻击概念和防范手段

    2024-04-23 17:00:04       13 阅读
  11. 【前端】vue3使用方法

    2024-04-23 17:00:04       12 阅读