Python爬取京东手机信息

一、观察网页

  1. 打开浏览器
  • 找到京东手机分类下的网址https://list.jd.com/list.html?cat=9987%2C653%2C655&page=5&s=117&click=0
  1. 确认爬取的html页面是动态页面还是静态页面
  • 方法一:通过翻页,网址在变化,说明为静态网页

  • 方法二:在开发者工具中的网络中,选择与网址后缀名相同的链接,并通过搜索“华为”找到相关信息,说明为静态网页

    二、导入第三方库

  • 代码如下:

import requests   import pandas as pd   from bs4 import BeautifulSoup   

三、请求数据

  1. 请求方式
  • 在开发者工具中的标头中,查看请求方式为GET
  1. 伪装浏览器
  • 需要用User-Agent伪装成浏览器,对反爬进行反制
  1. for循环语句
  • 代码如下:
data = []   for page in range(1, 11):       print(f"正在爬取第{page}页...")    # 打印当前运行的页面,方便查看爬虫进度       headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'}   # 构造请求头,模拟浏览器请求       response = requests.get(url.format(page), headers=headers)    # 发送请求并获取响应   

四、解析数据

  • 使用beautifulsoup4库来解析HTML内容并找到所有手机数据所在的标签。接着,遍历所有手机标签并通过try…except来处理异常(例如有些商品信息不全的情况),依次爬取商品名称、价格、链接和店铺信息,并将这些信息存储在一个列表中,代码如下:
soup = BeautifulSoup(response.text, 'html.parser')    # 解析HTML内容   goods_list = soup.find_all('li', class_='gl-item')    # 找出所有手机信息所在的标签   for goods in goods_list:    # 遍历所有手机信息标签       try:           name = goods.find('div', class_='p-name').find('a').text.strip()    # 找出手机名称           price = goods.find('div', class_='p-price').find('i').text.strip()    # 找出手机价格           link = 'https:' + goods.find('div', class_='p-name').find('a')['href']    # 找出手机链接           store = goods.find('div', class_='p-shop').find('a', target='_blank').text.strip()    # 找出手机店铺           data.append([name, price, link, store])    # 将手机信息存储在一个列表中       except:           continue    # 处理异常情况,例如有些商品信息不全的情况   

五、存储数据

  • 将列表转换为pandas中的DataFrame格式,调用to_excel方法将数据导出到Excel文件中,代码如下:
df = pd.DataFrame(data, columns=['名称', '价格', '链接', '店铺'])    # 将数据转换为DataFrame格式   df.to_excel('jd_phones.xlsx', index=False)    # 将数据导出到Excel文件中,不导出行索引   

六、全套代码

import requests   import pandas as pd   from bs4 import BeautifulSoup      url = 'https://list.jd.com/list.html?cat=9987,653,655&page={}'      data = []   for page in range(1, 11):       print(f"正在爬取第{page}页...")    # 打印当前运行的页面,方便查看爬虫进度       headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'}   # 构造请求头,模拟浏览器请求       response = requests.get(url.format(page), headers=headers)    # 发送请求并获取响应       soup = BeautifulSoup(response.text, 'html.parser')    # 解析HTML内容       goods_list = soup.find_all('li', class_='gl-item')    # 找出所有手机信息所在的标签       for goods in goods_list:    # 遍历所有手机信息标签           try:               name = goods.find('div', class_='p-name').find('a').text.strip()    # 找出手机名称               price = goods.find('div', class_='p-price').find('i').text.strip()    # 找出手机价格               link = 'https:' + goods.find('div', class_='p-name').find('a')['href']    # 找出手机链接               store = goods.find('div', class_='p-shop').find('a', target='_blank').text.strip()    # 找出手机店铺               data.append([name, price, link, store])    # 将手机信息存储在一个列表中           except:               continue    # 处理异常情况,例如有些商品信息不全的情况      df = pd.DataFrame(data, columns=['名称', '价格', '链接', '店铺'])    # 将数据转换为DataFrame格式   df.to_excel('jd_phones.xlsx', index=False)    # 将数据导出到Excel文件中,不导出行索引   

七、运行结果

  • 爬取了10页

  • 可以找到文件“jd_phones.xlsx"

  • Excel文件

以上就是“Python爬取京东手机信息”的全部内容,希望对你有所帮助。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

Python爬取京东手机销售信息通常涉及网络爬虫技术,使用诸如requests、BeautifulSoup、Scrapy等库来自动化获取网页内容。以下是一个简化的步骤: 1. **安装必要的库**: 首先需要安装`requests`库用于发送HTTP请求,`lxml`或`beautifulsoup4`库用于解析HTML。 ```bash pip install requests beautifulsoup4 ``` 2. **分析网页结构**: 访问京东手机页面,查看HTML结构,找到包含商品信息的部分。比如商品标题、价格、销量等数据通常会封装在特定的HTML标签内。 3. **编写爬虫代码**: 使用Python编写脚本,通过`requests.get()`获取页面源码,然后用选择器(如BeautifulSoup的`select()`或XPath)定位到所需的数据。 ```python import requests from bs4 import BeautifulSoup url = 'https://list.jd.com/' headers = {'User-Agent': 'Mozilla/5.0'} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'lxml') phones_info = soup.select('.product-item') # 假设商品列表在class为'.product-item'的元素下 ``` 4. **提取信息并存储**: 对每个找到的商品信息,解析出对应的属性值,并保存到列表、字典或数据库中。 5. **处理分页和动态加载**: 如果数据分布在多个页面或有滚动加载的情况,可能需要模拟登录、遍历分页链接,甚至使用Selenium等工具处理JavaScript渲染的内容。 6. **注意法律问题**: 网络爬虫在实际操作时需遵守网站的Robots协议,以及京东的使用条款,尊重版权,合理使用数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值