"""
[课 题]: python爬虫实战-淘宝商品数据
[必备资料]: stealth.min.js
[开发环境]:
python 3.8
pycharm 专业版
selenium 模块 3.141.0 操作浏览器
Chromedriver.exe
Chrome浏览器
"""
from selenium import webdriver
import time
import csv
content = input("请输入你要搜索内容:")
f = open('淘宝.csv', mode='a', newline='', encoding='utf-8')
csv_writer = csv.writer(f)
csv_writer.writerow(['title', 'price', 'shopName', 'salesVolume', 'location', 'link'])
# 浏览器配置对象
options = webdriver.ChromeOptions()
# 禁用自动化栏
options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 屏蔽保存密码提示框
prefs = {'credentials_enable_service': False, 'profile.password_manager_enabled': False}
options.add_experimental_option('prefs', prefs)
# 反爬虫特征处理
options.add_argument('--disable-blink-features=AutomationControlled')
# 1. 打开浏览器
driver = webdriver.Chrome(options=options)
# 读取js脚本
f = open('stealth.min.js', mode='r', encoding='utf-8').read()
# 移除selenium当中爬虫的特征
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {'source': f})
# 2. 登陆淘宝
login_url = f'https://login.taobao.com/member/login.jhtml?redirectURL=https%3a%2f%2fs.taobao.com:443/search%2F_____tmd_____%2Fpage%2Flogin_jump%3Frand%3DS3WxGHAgAt756EpznwfNzJq2AFA2qBNla3j6EINUS8We9dazM_iKElp8DwVSHZUevpC41Bx7RzivXIj9RnZgdg%26_lgt_%3D18226bb91deded8cffaff7888beed94f___215918___cfebbaa67a39cf15a90ac3bc9d90d370___837b211a0c5c4d0311617da5fff37e25001413704de625b860e2518faad0f03625c577351a3a8791603261bef29a779dbdd4a89e6b9b9cca582985dcf430d08c74006c7ccabb817b7e28145df69ebceaf0e031931b9132ad85013eb3be5f87fdfda1ffe6d0052b26010cff24765b937333be60e83f16310c86c494a16dd5d1b16c7f2de620667f2e22d717e3d5c8f4f1ef8b8415db5cc8cb7b25c3032c6b30b5%26x5referer%3Dhttps%253A%252F%252Fs.taobao.com%252Fsearch%253Fq%253D%252B{content}%2526commend%253Dall%2526ssid%253Ds5-e%2526search_type%253Ditem%2526sourceId%253Dtb.index%2526spm%253Da21bo.jianhua.201856-taobao-item.2%2526ie%253Dutf8%2526initiative_id%253Dtbindexz_20170306&uuid=18226bb91deded8cffaff7888beed94f'
# 2.1 打开登陆网页
driver.get(url=login_url)
# 2.2 定位输入框 并且输入账号和密码
# 账号
driver.find_element_by_css_selector('#fm-login-id').send_keys("这里输入自己的淘宝号")
# 密码
driver.find_element_by_css_selector('#fm-login-password').send_keys("这里输入自己的密码")
# 点击登陆
driver.find_element_by_css_selector('#login-form > div.fm-btn > button').click()
time.sleep(3)
def get_next():
# 3. 获取商品信息
# 3.1 定位所有的商品
divs = driver.find_elements_by_css_selector('.grid.g-clearfix .items .item')
# 3.2 提取每个商品的详情信息
for div in divs:
# 二次提取
price = div.find_element_by_css_selector('.price').text
salesVolume = div.find_element_by_css_selector('.deal-cnt').text
title = div.find_element_by_css_selector('.row.row-2.title').text
link = div.find_element_by_css_selector('.J_ClickStat').get_attribute('href')
shopName = div.find_element_by_css_selector('.shopname').text
location = div.find_element_by_css_selector('.location').text
print(title, price, shopName, salesVolume, location, link)
# 4. 保存数据
csv_writer.writerow([title, price, shopName, salesVolume, location, link])
for page in range(0, 100):
get_next()
driver.get(f'https://s.taobao.com/search?q={content}&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.jianhua.201856-taobao-item.2&ie=utf8&initiative_id=tbindexz_20170306&bcoffset=1&ntoffset=1&p4ppushleft=2%2C48&s={page*44}')
python爬虫实战-淘宝商品数据
需积分: 0 47 浏览量
更新于2023-02-06
9
收藏 16KB ZIP 举报
在本实践项目中,我们将深入探讨使用Python爬虫技术来获取淘宝商品数据,进而进行电商数据分析。Python爬虫是信息自动化获取的重要工具,尤其在大数据时代,它可以帮助我们有效地抓取网页上的结构化和半结构化信息。在这个案例中,我们将专注于如何利用Python爬虫从淘宝网站上抓取商品信息,例如商品名称、价格、销量、评价等,以供后续的数据分析和挖掘。
我们需要了解Python爬虫的基础知识。Python中有多个库支持网络爬虫的开发,如BeautifulSoup、Scrapy和Requests。其中,Requests库用于发送HTTP请求,获取网页源代码;BeautifulSoup则是一个解析库,可以方便地解析HTML或XML文档,提取所需数据。在本项目中,我们可能需要结合这两个库,先用Requests获取网页,再用BeautifulSoup解析页面内容。
淘宝网站通常会使用动态加载技术,如Ajax,来呈现商品数据。因此,我们可能需要使用像Selenium这样的浏览器自动化工具,模拟用户交互,获取动态加载的数据。Selenium可以控制浏览器执行点击、滚动等操作,以获取完整页面信息。
接下来,我们将学习如何处理反爬机制。淘宝会设置各种策略防止爬虫,如验证码、IP限制、User-Agent检测等。我们需要通过设置合适的请求头,甚至使用代理IP池,来避免被淘宝识别为爬虫。此外,理解并应用cookie机制也对成功爬取数据至关重要。
在获取到原始数据后,我们需要清洗和预处理。这包括去除HTML标签、转换编码、处理缺失值和异常值等。Python的pandas库在这方面非常强大,提供了丰富的数据处理函数。此外,我们还需要将非结构化的文本数据(如商品描述)进行分词和情感分析,这可以使用jieba和nltk等自然语言处理库。
在数据清洗完成后,我们可以进行数据分析。这可能涉及到统计分析、关联规则挖掘、时间序列分析等。例如,分析商品的销量趋势、价格分布、评价得分等,以洞察市场动态。Python的matplotlib和seaborn库可用于数据可视化,帮助我们更好地理解数据背后的模式和规律。
我们可以利用机器学习算法对数据进行建模,预测商品的销售表现或用户行为。这可能涉及线性回归、决策树、随机森林、神经网络等模型。Python的scikit-learn库提供了丰富的机器学习工具,使得模型构建和评估变得简单易行。
"Python爬虫实战-淘宝商品数据"项目涵盖了Python爬虫技术的各个环节,从网络请求到数据解析,再到数据清洗、分析和建模。通过这个项目,你可以提升自己的爬虫技能,并了解如何将爬取的电商数据应用于实际的业务决策中。
小小月亮消灭你
- 粉丝: 1
- 资源: 1