爬虫--selenium爬取淘宝商品数据

# 导入包
from selenium import webdriver
# 连接驱动器,这里用的是谷歌,版本必须对应
driver = webdriver.Chrome(executable_path='chromedriver.exe')
# 发送请求,selenium只有get请求
driver.get('https://www.taobao.com')
# 获取搜索框,输入关键字,并自动点击搜索
in_put = driver.find_element_by_id('q')
in_put.send_keys('大衣')  # 可换成自己想要爬取的商品
driver.find_element_by_class_name('btn-search').click()
# 发现必须先登录,故输入账号跟密码,并自动点击登录
user_id = driver.find_element_by_name('fm-login-id')
user_id.send_keys(账号)
password = driver.find_element_by_name('fm-login-password')
password.send_keys(密码)
driver.find_element_by_class_name('fm-button').click()
# 可能会出现用户条件协议,点击同意
driver.find_element_by_class_name('btn').click()
# 开始获取数据,因为不太敢乱爬,所以只爬了一个页面而已
import time
text_list = driver.find_elements_by_class_name('ctx-box')
lit = []  # 构造空列表,存储字典数据,后方便用于转化数据框 
for i in text_list:
#     print(i.text)
    x = i.text.split('\n')  # 分割数据,方便后面用于存储
    dic = {}  # 用空字典存储数据
    dic['价格'] = x[0]
    dic['购买人数'] = x[1]
    dic['商品名称'] = x[2]
    dic['店铺名称'] = x[3]
    dic['城市'] = x[4]
    lit.append(dic)
    time.sleep(1)

print(lit)    
# 将数据转换为数据框
import pandas as pd
df = pd.DataFrame(lit)
df.head()
价格购买人数商品名称店铺名称城市
0¥1150.0057人付款高端水貂毛领冬季爸爸男装中老年羊绒呢子大衣过膝超长款羊毛风衣朋克宾威服饰旗舰店江苏 苏州
1¥980.00202人付款哥弟2020新款冬装加厚连帽过膝长款毛领羽绒服大衣外套女A400326哥弟官方旗舰店广东 广州
2¥989.0085人付款白鸭绒羽绒服20秋冬保暖男士潮流中长外套大衣服装杰克琼斯大码Djackjones官方旗舰天津
3¥828.001833人付款2020秋冬季新款双面羊绒大衣男中长款过膝韩版帅气男士毛呢子外套鑫汇源海外贸易上海
4¥3580.00302人付款水貂内胆皮毛一体真皮皮衣男山羊皮夹克翻领整貂皮大衣外套皮草冬jllley浙江 嘉兴
# 数据处理
df['价格'] = df['价格'].apply(lambda x: x[1:])
df['购买人数'] = df['购买人数'].apply(lambda x: x[:-3])
df['城市1'] = df['城市'].apply(lambda x: x[-2:])
df.head()
价格购买人数商品名称店铺名称城市
01150.0057人付款高端水貂毛领冬季爸爸男装中老年羊绒呢子大衣过膝超长款羊毛风衣朋克宾威服饰旗舰店江苏 苏州
1980.00202人付款哥弟2020新款冬装加厚连帽过膝长款毛领羽绒服大衣外套女A400326哥弟官方旗舰店广东 广州
2989.0085人付款白鸭绒羽绒服20秋冬保暖男士潮流中长外套大衣服装杰克琼斯大码Djackjones官方旗舰天津
3828.001833人付款2020秋冬季新款双面羊绒大衣男中长款过膝韩版帅气男士毛呢子外套鑫汇源海外贸易上海
43580.00302人付款水貂内胆皮毛一体真皮皮衣男山羊皮夹克翻领整貂皮大衣外套皮草冬jllley浙江 嘉兴
# 数据存储
df.to_excel('taobao.xlsx')

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
使用 Selenium 自动化爬取淘宝商品详情数据可以分为以下步骤: 1. 安装 Selenium 和浏览器驱动:Selenium 是 Python 中用于自动化 Web 浏览器的库,需要安装;同时需要下载对应浏览器的驱动程序,如 ChromeDriver。 2. 打开浏览器并访问淘宝网站:使用 Selenium 打开指定的浏览器并访问淘宝网站。 3. 搜索关键字并获取搜索结果:在搜索框中输入关键字并点击搜索按钮,等待搜索结果加载出来,使用 Selenium 获取搜索结果页面的 HTML 代码。 4. 解析搜索结果页面:使用 BeautifulSoup 解析搜索结果页面,获取每个商品的链接。 5. 进入商品详情页面并获取数据:遍历每个商品的链接,使用 Selenium 进入商品详情页面并获取需要的数据,如商品标题、价格、评论数、销量等。 6. 存储数据:将获取到的数据存储到数据库或文件中。 下面是一个示例代码: ```python from selenium import webdriver from bs4 import BeautifulSoup import time # 设置浏览器驱动路径 driver_path = './chromedriver.exe' # 创建浏览器对象 browser = webdriver.Chrome(driver_path) # 设置搜索关键字 keyword = '手机' # 访问淘宝网站 browser.get('https://www.taobao.com/') # 等待页面加载完成 time.sleep(3) # 找到搜索框并输入关键字 browser.find_element_by_name('q').send_keys(keyword) # 点击搜索按钮 browser.find_element_by_class_name('btn-search').click() # 等待搜索结果加载完成 time.sleep(5) # 获取搜索结果页面的 HTML 代码 html = browser.page_source # 使用 BeautifulSoup 解析搜索结果页面 soup = BeautifulSoup(html, 'html.parser') # 获取所有商品的链接 links = [] for item in soup.find_all('a', class_='J_ClickStat'): link = item.get('href') if link.startswith('https://'): links.append(link) # 遍历每个商品的链接并获取数据 for link in links: # 进入商品详情页面 browser.get(link) # 等待页面加载完成 time.sleep(3) # 获取商品标题 title = browser.find_element_by_xpath('//h3[@class="tb-main-title"]/text()') # 获取商品价格 price = browser.find_element_by_xpath('//div[@class="tb-property-cont"]/div[@class="tb-detail-price"]/span[@class="tb-price"]/text()') # 获取商品评论数 comment_count = browser.find_element_by_xpath('//div[@class="tb-rate-counter"]/span[@class="tm-count"]/text()') # 获取商品销量 sales_volume = browser.find_element_by_xpath('//div[@class="tb-sales-counter"]/span[@class="tm-count"]/text()') # 打印商品信息 print('标题:', title) print('价格:', price) print('评论数:', comment_count) print('销量:', sales_volume) # 关闭浏览器 browser.quit() ``` 需要注意的是,使用自动化爬取数据容易被网站识别为机器行为,可以添加一些随机等待时间、请求头伪装等方式来降低被识别的概率。同时,爬取数据时也需要遵守网站的爬虫规则,如不过度频繁访问、不采集敏感信息等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

灯下夜无眠

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

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

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

打赏作者

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

抵扣说明:

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

余额充值