python 爬取淘宝第二弹(淘宝数据爬取)

本文详细介绍了使用Python爬取淘宝商品数据的过程,包括分析搜索页面结构、构建翻页请求、利用正则表达式抓取数据及处理IP封禁等关键步骤。
部署运行你感兴趣的模型镜像

python 爬取淘宝第二弹(淘宝数据爬取)

经过上次淘宝登录以后,可以进行淘宝商品的采集了,首先我们需要知道的是我们需要的数据在哪里,我通过搜索第一个手机的名字可以看到在这个页面中有我们想要的数据,但是他是镶嵌在script标签里面的我们只能通过正则拿到他。

在这里插入图片描述

首先经验可知get请求一般搜索关键字都会在链接里出现,页数也是会显示在链接里面 淘宝我们不能只采集一页,所以说我们需要分析链接进行翻页操作。

‘https://s.taobao.com/search?q=%E6%89%8B%E6%9C%BA&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170306&bcoffset=3&ntoffset=3&p4ppushleft=1%2C48&s=44

我大概翻了几页可以看到s是页数,可以拼接一下每页会增加44,所以s=page*44,q代表的是关键字搜索。
然后我们就可以构造请求了。

在这里插入图片描述
在去请求前需要我们之前登陆淘宝的session,所以这里我们去调用登录模块,使session能够携带登陆信息。
将页面拿下来之后需要我们进行正则匹配,这里说明一下正则是我从一位大佬那里直接拿过来的。因为我并不怎么会正则。可以看到拿下来的数据,然后我们只需先将数据变成json格式,在根据我们想要什么直接将数据拿下来。

在这里插入图片描述

需要注意的是,采集的时候我们淘宝会封ip,需要有ip代理池。有兴趣要源码的同学可以评论留下你的微信~

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

使用Python爬取快手直播间幕,可参考通用的直播网站爬取思路。获取实时幕有两种主要途径:一是通过直播网站公开的开放平台找对应的API,但获得授权难度较高;二是直接从网站获取,由于使用`requests`发起的`get`请求在直播网站加载js访问幕服务器时就结束,无法获取到幕,因此可使用自动测试神器`selenium`,使用前需学好css选择器 [^1]。 以下给出一个简单示例代码框架来爬取直播间幕并保存到Excel(此代码仅为示例,需根据实际情况修改): ```python import random import requests import time import openpyxl from selenium import webdriver from selenium.webdriver.common.by import By # 打开文件 wb = openpyxl.Workbook() # 使用的工作对象创建一张表 sheet = wb.active # 在sheet1表中写入内容 插入内容 sheet.append(['B友姓名', 'B友说的话']) # 这是在excel第一行插入,可以相当于一个文件的表头 # 用列表储存爬取内容,防止出现相似值 ls = [] # 初始化selenium的浏览器驱动 driver = webdriver.Chrome() # 这里以Chrome为例,需安装对应浏览器驱动 # 打开快手直播间页面 room_url = '这里填入快手直播间的URL' driver.get(room_url) while True: try: # 等待页面加载 time.sleep(random.randint(1, 3)) # 使用css选择器定位幕元素,需要根据实际页面结构调整 danmu_elements = driver.find_elements(By.CSS_SELECTOR, '这里填入幕元素的css选择器') for element in danmu_elements: # 假设页面结构中包含昵称和幕内容,需根据实际调整获取方式 nickname = element.find_element(By.CSS_SELECTOR, '这里填入昵称元素的css选择器').text text = element.find_element(By.CSS_SELECTOR, '这里填入幕内容元素的css选择器').text s = "{}说:{}".format(nickname, text) if s not in ls: ls.append(s) # 确定没有重复值了输出 sheet.sheet_properties.tabColor = '000000' print('B友姓名' + nickname, 'B友说的话' + text) print('开始写入excel,请稍等...', end='') xx_info = [nickname, text] sheet.append(xx_info) print('写入成功\n') except Exception as e: print(f"出现错误: {e}") # 关闭保存工作簿 wb.save('data.xls') ```
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

进击的黑蛋

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

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

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

打赏作者

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

抵扣说明:

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

余额充值