爬取淘宝信息数据

首要需求先导入webdriver

from selenium import webdriver

webdriver支撑干流的浏览器,比方说:谷歌浏览器、火狐浏览器、IE浏览器等等

然后可以创建一个webdriver方针,经过这个方针就可以经过get方法恳, } i c : d B T求网站

driver = wd q n s Rebdriver.Chrome()	# 创建driver方针
driR 5 aver.get('ht` z 2 @ :tps://www.&  M Ebaidu.com')	# 央求百度

接下来可以定义一个方法:search_product

一、selenium的简略介绍

1.selenium简介

selenium是一个用于检验网站的自动化# V | y ! 7 W ; q检验东西,支撑许多干流的浏览器,比方:谷歌浏览器、火狐浏览器、IE、Safari等。

2.支撑多个操作体系

如windows、Linux、IOS、Av 1 ! P ( M # g Vndroid等。

3、设备selenium

翻开终端输入

pip installx J S G + e V - Selenium

4、设备浏览器驱动

1、Chrome驱动文件下载:点击下载谷歌浏览器驱动

2、火狐浏览器驱动文件下载:点击下载geckodriver

5、装备环境变量

装备R G { } M `环境变量的方法非常简略,首要将下载, : b好的驱动进行解压,放到你设备Python的目录下,即可。

由于之前,在装备Python环境变量的时分,就将Python的目录放到我的电脑–v ; ( 2 : d {>特色–>体_ t r t = ? X系设置–>高档f n + & C ? I S f–>环境变量–>体系变量–>Path

Python爬虫之获取淘宝商品信息

二、selenium快速入门

1、selenium供应8种定位* J U 3 ] 3 –方法

1、id

2、name

3、class name

4、tag name

5、link text

6、partial link text

7、7 y { { ( Rxpath

8、cssn K / y r % selector

2、定位元素的8中方法详解

定义一个元素 定位多个元素 含义
find_element_by_id find_elements_by_id 经过元素的id定位
find_element_by_name find_elements_by_name 经过元素1 B s oname定位
find_element_b] @ H v ny_xpath find_U h Y J 4 W {elements_by_xpath 经过xpath表达式定位
find_element_by_link_text find_elements_by_link_tex{ k s S F G ^ w Wt 经过完好超链接定位
find_element_by_partial_link_text find_elements_by_partial_link_text 经过部分链接定位
find_element_by_tag_name find_elements_by, P 4 7 3_tag_name 经过标签定位
find_element_by_class_name find_elements_by_class_name 经过类名进行定位
find_element_by_css_selector find_elements_by_css_selector 经过css选择器进行定位

3、selenium库下webdriver模块常用的方法与l 5 g L n K )运用

控制浏览器的一些方法

方法 说明
set_w$ I x u e G 8 = }indow_size() 设置浏览器的巨细
back() 控制浏览器撤退O 4 7
forward() 控制浏览器跋涉
refresh, ] C() 改写当时页面
clear() 铲除文本
send_keys (value) 模仿按键输入
click() 单击元素
submit() 用于提交表单
get_attribute(name) 获取g * L元素特色值
text 获取元素的文本

4、代码实例

from selenium import webdriver
importt t c z time
# 创建Chrome浏览器方针,这会在电脑中翻开一个窗口
browser = webdriver.Chrome()
# 经过浏览器向服务器建议恳J T ? ~ l = t Z M
browser.get('https://www.baiU 8 h -duX J ^ h { b ! = V.c? & % h 7 J $ H Mom')
time.sleep(3)
# 改写浏览器
browser.refres? B ~ Xh()
# 最大化浏览器窗口
browser.maximK a B Q d Cize_window()
# 设置链接内容
element = browser.find_element_by_link_text('抗击肺炎')
# 点击'抗击肺炎'
element.click()+ 7 O D g ~ x ^

关于selenium的简略介绍就先到这儿了,更多具体内容我们m $ n ~ f w c可以去seleni? m M t Fum官方文档查看。点击查看selenium官方文档

爬取淘宝数据

Python爬虫之获取淘宝商品信息

从上图,可以看到需求获取的信息是:价格、产O y & w品名称、付款人数、店肆名称。} ) w P

现在我们开始进入主题。

首要,Q 4 = O n需求输入你要查找产品的内容,然后依据内容去查找淘宝信息,终究提取信息并保存。

1、搜素产品

我在这儿定义提个查找产品的函数和一个主函数~ A , i x t

查找产品

在这儿需求创建一个浏览器方针,并且依据该方针的get方法来发送央求。

Python爬虫之获取淘宝商品信息

从上图可以发现查找框的id值为q,那么这样就简略许多了,有HTML基础的朋友必定知道id值是唯一的。

经过id值可以获取到文本框的方位,并传入参数,然后点击查找按钮。

Python爬虫之获取淘宝商品信息

从上图可以发现查找按钮在一个类里面,那么可以经过这个类来定位到查找按钮,并履行点击操作。

当点击查找按钮之后,网页便会跳转/ O F到登录界面,要求我们登录,如下图所示:

Python爬虫之获取淘宝商品信息

​ 登录成功后会发现,里面的数据总共有100页面。

Python爬虫之获取淘宝商品信息

上图是前三页的url地址,你会发现其实并没有太大的改变,经过测# R , s 3 ) P验发现,实在有效的参数是框起来的内容,它的改变会导致页面的跳转,很明显第一页的s=0,第二页s=44,第三页s=w _ ` . R88,以此类推,之后就可以轻松做到翻页了。

搜搜产品的代码如下:

def search_product(key_word):
'''
:param key_word: 查找关键字
:return:
'''
# 经过id值来获取文本框的方位,并传入关键字
browser.find_element_by_id('q').send_keys(key_word)
# 经过class来获取到查找按钮的方位,并} : % ?点击
browser.find_element_by_cK 8 Y 4 G Q f Olass_name('2 , [ { @btn-search').click()
# 最大化窗口
browser.maximize_- 3 n B % / b Awindow()
time.sleep(15)
page = browser.find_element_bJ , w 9 3 c Iy_xpath('//div[@clasW C  ] tsN p l p="total"]').text  # 共. L i V D m r ^ [ 100 页,
page = re.findall('(d+)', page)[0] # findall回来一个列表
return page

2、获取产品信息并保存

获取产品信息相对比较简略,可以经过xpath方法来获取数据。在这儿我就不在论述。在这边我创建了一个函数 _ vget_product来获取并保存信息。在保存信息的过程中运用到了csv模块,目的是将信息保存到csv里面。

def get_product():
divs = dri@ u E R ^ R U %ver.find_elements_by_xpath(R : 0'//dm ~ Q c , y _iv[@class="items"]/div[@class="item J_MouserOK 1 ? U M r RnverReq  "]'3 s & / E = , 6)	# 这儿回来的是列表,留意:elements
for div in divs:
info = di- 8 Gv.find. f : r K + ]_element_by_xpath('.//div[@class="row row-P , 3 H v n (2 title"]/a'); E x k 9 n.text
price = div.find_element_by_xpat6 6 g j B :h('.//strong').te& 4 X Z lxt + '元'
nums = div.find_element_by_xpath('.//div[@class="_ . . D S -deal-cnt"]').text
names = div.fi? P y M und_element_by_xpath('./O p `/div[@class="sh 6 5 k Gop"]/a').text
print(info, price, nums, names,sep='|d 7 ; $ z')
with open('data3.csv', mode='a', newline='', encoding='utf-8') as file:
csv_writer = csv.writer(file, delimiter=',')    # 指定分隔符为逗号
csv_writerm o } % H  i Q.writerow([info, price, nums, names])

3、结构URL实现. D B d * 3翻页爬取

从上面的图片中可以发现接连三页URL的地址,其实实在改变并不是许多,经过检验发现,只要q和s两个参数是有用的。

结构出的url:s.taobao.com/search?q={}…

由于q是你要查找的产品,s是设置翻页的参数。这段代码就放在了主函数里面

def main():
browser.get('htth N } zps://www.tj R p O Zao$ 3 V l { R qbL U ! b K Z o eao.com/')  # 向服务器发送央求
page = search_product(key_worZ 5 Id)
print('正在爬取第7 ; 4 f ^ a 21页的数据')
get_producH q % L & ^ ` 1t()   # 现已取得第W q d . 6 9 11页的数据1 = s N $ N
page_nums = 1
while page_nums != page:
prM j n 8 B # 4 3 cint('*'*100)
prr 5 { ~ K K xint('正在爬取第{}页的数据'.format(page_nums+1))
browser.get('https://s.taobao.com/search?q={}&s={}'.format(key_word, page_nums*44))
browser.implicitly_wait(10) # 等候10秒
get` U u ! _product()
page_num. g J % U  -s += 1

终究成果,如下图所k # $ p K示:

Python爬虫之获取淘宝商品信息

问题咨询

假设在这儿我们有不理解的当地可以( M Z G向我提出。可以在文章下方留言,也可以Z s A n R # O U t添加我的微信

Python爬虫之获取淘宝商品信息

代码* } u { : T T $获取

我们假设需求获取源代码的话可以重视我的H H s r群众号,在群众号里面文章会更加的具体。

Python爬虫之获取淘宝商品信息

视频教程

本次爬取淘宝信息的视频教程现已上传到; E H u * @了B站,点击观看视频教程里面有许多的爬虫视频和web安全浸透的视频,欢迎我们观看并留言!!

称谢

好了,又到了该说再会的时分了,希望我的文章可以给你带来常识,带给你帮助。同时也感谢你可以抽出你名贵的时间来阅览,创造不易,假设你喜欢的话,点个重视再走吧。更多精彩内容会在后续更新,你的支撑就是我创造的动力,我往后也会极力给我们书写出更加优质的文章、。