ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

双十一刚过,写了一个selenium爬取淘宝商品信息的爬虫

2021-11-26 23:30:28  阅读:170  来源: 互联网

标签:xpath 商品信息 random selenium find 爬取 sleep time id


from selenium import webdriver
import random#用于设置随机等待
import time


word='游戏本'
infos = []
prices = []
deals = []
names = []
locations = []

#登录模块
def search_product(keyword):
	
	driver.find_element_by_xpath('//*[@id="q"]').send_keys(keyword)
	#为了避免被检测,要模拟用户
	time.sleep(random.randint(1,3))#1到3秒随机等待
	driver.find_element_by_xpath('//*[@id="J_TSearchForm"]/div[1]/button').click()
	time.sleep(random.randint(1,3))
	#,解决登录
	driver.find_element_by_xpath('//*[@id="fm-login-id"]').send_keys("账号")
	time.sleep(random.randint(1,3))
	driver.find_element_by_xpath('//*[@id="fm-login-password"]').send_keys('密码')
	time.sleep(random.randint(1,3))
	driver.find_element_by_xpath('//*[@id="login-form"]/div[4]/button').click()
	time.sleep(random.randint(1,3))

def fanye():
	a=5
	for i in range(1,16):
		if i<4:
			parse_data()
			time.sleep(random.randint(1,3))
			print(f'第{i}页爬取成功')
			driver.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/ul/li[8]/a').click()
		elif 4<=i<=6:
			b=a+i
			parse_data()
			time.sleep(random.randint(1,3))
			print(f'第{i}页爬取成功')
			driver.find_element_by_xpath(f'//*[@id="mainsrp-pager"]/div/div/div/ul/li[{b}]/a').click()
		elif i>=6:
			b=a+i
			parse_data()
			time.sleep(random.randint(1,3))
			print(f'第{i}页爬取成功')
			driver.find_element_by_xpath(f'//*[@id="mainsrp-pager"]/div/div/div/ul/li[11]/a').click()
		elif 6<=i<=8:
			b=a+i
			parse_data()
			time.sleep(random.randint(1,3))
			print(f'第{i}页爬取成功')
			driver.find_element_by_xpath(f'//*[@id="mainsrp-pager"]/div/div/div/ul/li[{b}]/a').click()
			#//*[@id="mainsrp-pager"]/div/div/div/ul/li[11]/a
		#	//*[@id="mainsrp-pager"]/div/div/div/ul/li[11]/a
			#//*[@id="mainsrp-pager"]/div/div/div/ul/li[11]/a
	#//*[@id="mainsrp-pager"]/div/div/div/ul/li[9]/a
	#//*[@id="mainsrp-pager"]/div/div/div/ul/li[10]/a

		time.sleep(random.randint(1,3))
	

#下载模块
def parse_data():
	#解析商品数据
	#多个商品数据解析
	#//*[@id="mainsrp-itemlist"]/div/div
	divs=driver.find_elements_by_xpath('//div[@class="grid g-clearfix"]/div/div')#加个s变成列表!!!
	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+'元'#价格
		deal=div.find_element_by_xpath('.//div[@class="deal-cnt"]').text#付款人数

		name=div.find_element_by_xpath('.//div[@class="shop"]/a/span[2]').text#店名
		location=div.find_element_by_xpath('.//div[@class="location"]').text#地址

		infos.append(info)
		prices.append(price)
		deals.append(deal)
		names.append(name)
		locations.append(location)

#		deal_url=div.find_element_by_xpath('.//div[@class="pic"]/a').get_attribute('href')

    print(info)
	print(price)
	print(deal)
	

#创建浏览器对象
driver=webdriver.Chrome()
#修改浏览器的内部属性



#执行浏览器操作
driver.get('https://www.taobao.com/')
driver.implicitly_wait(10)#智能化等待
#driver.maximize_window()#最大化浏览器

#调用搜索函数
search_product(word)
fanye()
workbook.close()
time.sleep(1)
driver.quit()
print("爬取结束")

可以的话,请点赞关注

标签:xpath,商品信息,random,selenium,find,爬取,sleep,time,id
来源: https://blog.csdn.net/ksueis/article/details/121570587

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有