使用python的selenium爬取淘宝标题价格,就算小白也能看懂的教学!!
第一步 爬取前准备
安装selenium,以及如何启动自动控制请看下一章。
打开淘宝页面按下F12,即可跳出控制台(开发者模式),这里只要你技术好,网页上的资料你都能轻松获取。温馨提示:爬虫爬的好,牢房坐的早,爬虫不规范,亲人两行泪。
第二步 解决自动搜索
1.选中图中的内容,获取搜索栏
2.同上1,选中指标然后copy内容,copyxpath然后因此代码为
def search_product(key_word):#定位搜索框 browser.find_element_by_id('q').send_keys(key_word) 这里使用的是id,xpath同理#定位搜索框点击browser.find_element_by_xpath('//*[@id="J_TSearchForm"]/div[1]/button').click()
3.点击跳转后淘宝会让你进行登录,所有我们需要一个自动登录账号的方法,以下是我觉得最简单的方法,有其他方法的小伙伴也可在评论区一起讨论
第三 淘宝登录界面自动登录
1.继续使用点击然后copy的方法,登录密码一样,就不做多介绍了。
代码为
browser.find_element_by_xpath('//*[@id="fm-login-id"]').send_keys(aa.USERNAME)time.sleep(1)browser.find_element_by_xpath('//*[@id="fm-login-password"]').send_keys(aa.UPSSWORD)time.sleep(2)
第四步 滑动条(重点)
先copy方块,模拟人点击之后拖动的效果。
按住拖动之后下面的指会一直加,那我们该怎么办呢。
截图的时候能看到长度大约为370,而方块为56所以,370-(56*2)=258,所以我们可以让浏览器点击之后滑动258个橡树,下方最后一行代码为点击登录。
login = browser.find_element_by_xpath('//*[@id="nc_1_n1z"]')action = ActionChains(browser)action.click_and_hold(on_element=login)action.move_by_offset(xoffset=258,yoffset=0)action.pause(0.5).release().perform() # perform()执行动作链browser.find_element_by_xpath('//*[@id="login-form"]/div[4]/button').click()
第五步 也就是我们要爬取的标题
依旧还是套用前面的方法,copy然后找到你要的属性,xpath就可以了,这里就不演示了。
def get_product():divs = browser.find_elements_by_xpath('//div[@class="items"]/div[@class="item J_MouserOnverReq "]')for div in divs:# 标题info = div.find_element_by_xpath('.//div[@class="row row-2 title"]/a').text# 价格price = div.find_element_by_xpath('.//strong').text+'元'# 购买人数nums = div.find_element_by_xpath('.//div[@class="deal-cnt"]').text# 店铺名称name = div.find_element_by_xpath('.//div[@class="shop"]/a').text# 地址name1 = div.find_element_by_xpath('.//div[@class="location"]').text# 打印标题print(info,price,nums,name,name1)# 保存with open('data1.csv',mode='a',newline='',encoding='utf-8-sig') as file:csv_writer=csv.writer(file,delimiter=',') # 指定分隔符csv_writer.writerow([info,price,nums,name])
完整代码
启动前需要新建一个py文件,里面设置两个参数USERNAME(账号),UPSSWORD(密码)
# -*- coding: utf-8 -*-
"""
@file: test.py
@time: 2020/7/17 15:20
@author: 雷姆天下第一
"""
from 淘宝数据挖掘 import aa # 放置账号和密码
from selenium import webdriver # 使用的第三方库
import time
import re
import csv
from selenium.webdriver import ActionChains # 淘宝登录滑动条
# 搜索商品
def search_product(key_word):#定位搜索框browser.find_element_by_id('q').send_keys(key_word)#定位搜索框点击browser.find_element_by_xpath('//*[@id="J_TSearchForm"]/div[1]/button').click()# 停顿15秒(登录)browser.implicitly_wait(30)# 最大化窗口browser.maximize_window()# 登录页面browser.find_element_by_xpath('//*[@id="fm-login-id"]').send_keys(aa.USERNAME)time.sleep(1)browser.find_element_by_xpath('//*[@id="fm-login-password"]').send_keys(aa.UPSSWORD)time.sleep(2)# 滚动滑条login = browser.find_element_by_xpath('//*[@id="nc_1_n1z"]')action = ActionChains(browser)action.click_and_hold(on_element=login)action.move_by_offset(xoffset=258,yoffset=0)action.pause(0.5).release().perform() # perform()执行动作链browser.find_element_by_xpath('//*[@id="login-form"]/div[4]/button').click()# 查看页数# page_test = browser.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/div[1]').text# page = re.findall('(\d+)',page_test)[0]# return page
def get_product():divs = browser.find_elements_by_xpath('//div[@class="items"]/div[@class="item J_MouserOnverReq "]')for div in divs:# 标题info = div.find_element_by_xpath('.//div[@class="row row-2 title"]/a').text# 价格price = div.find_element_by_xpath('.//strong').text+'元'# 购买人数nums = div.find_element_by_xpath('.//div[@class="deal-cnt"]').text# 店铺名称name = div.find_element_by_xpath('.//div[@class="shop"]/a').text# 地址name1 = div.find_element_by_xpath('.//div[@class="location"]').text# 打印标题print(info,price,nums,name,name1)# 保存with open('data1.csv',mode='a',newline='',encoding='utf-8-sig') as file:csv_writer=csv.writer(file,delimiter=',') # 指定分隔符csv_writer.writerow([info,price,nums,name])def main():browser.get('https://www.taobao.com')page = search_product(key_word)page_num=1# 爬取页数while page != page_num:print('*'*100)print("正在爬取{}页的信息".format(page_num))browser.get('https://s.taobao.com/search?q={}&s={}'.format(key_word,page_num))browser.implicitly_wait(10) #等待10秒get_product()page_num += 1
if __name__ == '__main__':key_word = input("请输入你要爬取的关键词:")browser = webdriver.Chrome()main()
小伙伴们,你们学会了吗?
下面是浏览效果图
使用python的selenium爬取淘宝标题价格,就算小白也能看懂的教学!!相关推荐
- python使用Selenium爬取淘宝商品信息
由于淘宝对自动化工具进行了识别,直接进入登录页面滑动二维码一直会报错,所以采取了曲线救国的方式,通过用微博账号来登录淘宝.刚自学<Python3网络爬虫开发实战>,和里面的代 ...
- Python爬虫+selenium——爬取淘宝商品信息和数据分析
浏览器驱动 点击下载chromedrive .将下载的浏览器驱动文件chromedriver丢到Chrome浏览器目录中的Application文件夹下,配置Chrome浏览器位置到PATH环境. 需 ...
- Python + selenium 爬取淘宝商品列表及商品评论 2021-08-26
Python + selenium 爬取淘宝商品列表及商品评论[2021-08-26] 主要内容 登录淘宝 获取商品列表 获取评论信息 存入数据库 需要提醒 主要内容 通过python3.8+ sel ...
- python爬虫——用selenium爬取淘宝商品信息
python爬虫--用selenium爬取淘宝商品信息 1.附上效果图 2.淘宝网址https://www.taobao.com/ 3.先写好头部 browser = webdriver.Chrome ...
- [Python3网络爬虫开发实战] 7-动态渲染页面爬取-4-使用Selenium爬取淘宝商品
在前一章中,我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取.比如,淘宝,它的整个页面数据确实也是通过Ajax获取的,但是这些Ajax接口参数比较复杂,可 ...
- 利用Selenium爬取淘宝商品信息
文章来源:公众号-智能化IT系统. 一. Selenium和PhantomJS介绍 Selenium是一个用于Web应用程序测试的工具,Selenium直接运行在浏览器中,就像真正的用户在操作一样. ...
- python不登陆爬取淘宝数据_python登录并爬取淘宝信息代码示例
本文主要分享关于python登录并爬取淘宝信息的相关代码,还是挺不错的,大家可以了解下. #!/usr/bin/env python # -*- coding:utf-8 -*- from selen ...
- 使用Selenium爬取淘宝商品(绕过登录页面)
文章目录 1.准备工作 2.接口分析 3.页面分析 4.获取商品列表 5.解析商品列表 6.保存到MongoDB 7.遍历每页 8.异常处理(绕过登录反爬机制) 方法一:修改ChromeDriver. ...
- selenium爬取淘宝商品基础数据以及商品详情(茶叶数据)
selenium爬取淘宝商品基础数据以及商品详情 目录 网页分析 确定要爬取的数据 分析网页构成 爬取流程 登入 爬取基础数据以及商品详情 爬取基础数据 爬取商品详情 淘宝滑动验证码 保存EXCEL中 ...
最新文章
- 谷歌研究院最新发现:训练结果不准确,超大数据规模要背锅!
- 全球域名解析商域名增量Top10:万网增量及涨幅皆第三
- Nginx的rewrite之return指令
- linux下的精确wait
- 基于flask的网页聊天室(四)
- python打印文件到字符串_请问Python打印字符串到文本文件
- 哈夫曼树【最优二叉树】【Huffman】
- JavaScript 是按值传递还是按引用传递的
- 堆(基本介绍,代码实现,以及例题)
- PHP操作Trait类
- PHP报错:iconv(): Detected an illegal character in input string
- java8新特性和汪文君Google Guava项目实战视频
- java连接带通讯密码的中控考勤机 iface702
- 在web服务器上运行html文件,再调用cgi打开txt文件
- 各种艺术字、图片在线制作
- 永久激活win和office
- 编程是门艺术_是编程艺术吗?
- Quartus II 8.1 安装破解 方法
- 【笔记】Libig从入门到放弃(续)
- AD20原理图设计与PCB封装画板--学习笔记