网站首页 > 技术文章 正文
前言
今天为大家带来利用Python模拟登录京东书籍商品数据抓取,废话不多说。
Let's start happily
开发工具
Python版本: 3.6.4
相关模块:
selenium模块
time模块
requests模块
lxml模块
csv模块
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
思路分析
本文以爬虫抓取京东书籍商品,讲解如何爬取模拟登录京东抓取数据
1.获取页面信息
class JdSpider(object):
def __init__(self):
self.i = 0
self.url = "https://www.jd.com"
self.browser = webdriver.Chrome(r"C:/python-3.9.6-embed-amd64/Application/chromedriver.exe")
2.获取页面信息 --到具体商品页面
def get_html(self):
# self.browser.set_window_size(1200, 800) # 控制浏览器大小
# self.browser.back() # 浏览器后退
# self.browser.forward() # 浏览器前进
self.browser.get(self.url)
self.browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",
{
"source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""})
a = input('请输入你想要的商品:')
self.browser.find_element_by_xpath('//*[@id="key"]').send_keys(a)
3.解析页面
# 解析页面
def parse_html(self):
# 把下拉菜单拉到底部,执行JS脚本
self.browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
time.sleep(2)
# 提取所有商品节点对象列表 li列表
li_list = self.browser.find_elements_by_xpath('//*[@id="J_goodsList"]/ul/li')
结果展示
4.创建csv,写入header
# 创建csv
fp = open('京东商品信息爬取.csv', 'wt', newline='', encoding='utf-8')
# 写入header
writer = csv.writer(fp)
writer.writerow(('价格', '评价', '出版社', '商品信息',))
for li in li_list:
info_list = li.text.split('\n')
if info_list[0].startswith('每满') or info_list[1].startswith('¥'):
price = info_list[1]
name = info_list[2]
comment = info_list[3]
shop = info_list[4]
elif info_list[0].startswith('单件'):
price = info_list[3]
name = info_list[4]
comment = info_list[5]
shop = info_list[6]
else:
price = info_list[0]
name = info_list[1]
comment = info_list[2]
shop = info_list[3]
writer.writerow((price, comment, shop, name))
print(price, comment, shop, name)
结果展示
猜你喜欢
- 2025-05-08 使用Python爬取给定网页的所有链接(附完整代码)
- 2025-05-08 python爬取电子课本,送给居家上课的孩子们
- 2025-05-08 「2022 年」崔庆才 Python3 爬虫教程 - aiohttp 的基本使用
- 2025-05-08 Python爬虫实战:爬取动态网页数据
- 2025-05-08 python爬虫怎么副业接单(python爬虫在哪接单)
- 2025-05-08 「2022 年」崔庆才 Python3 爬虫教程 - 网页解析利器 XPath 初体验
- 2025-05-08 惊呆了!Python还能这样用?爬取网页数据并存储至本地数据库
- 2025-05-08 Python爬虫:如何实现异步加载爬取图片?
- 2025-05-08 使用ChatGPT编码抓取网页数据成功
- 2025-05-08 python爬虫09 | 上来,自己动!这就是 selenium 的牛逼之处
- 263℃Python短文,Python中的嵌套条件语句(六)
- 262℃python笔记:for循环嵌套。end=""的作用,图形打印
- 261℃PythonNet:实现Python与.Net代码相互调用!
- 255℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 255℃Python实现字符串小写转大写并写入文件
- 113℃原来2025是完美的平方年,一起探索六种平方的算吧
- 94℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 87℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)