Python中怎么使用selenium爬取淘宝商品信息
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,本篇内容主要讲解"Python中怎么使用selenium爬取淘宝商品信息",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Python中怎么使用seleniu
千家信息网最后更新 2025年02月23日Python中怎么使用selenium爬取淘宝商品信息
本篇内容主要讲解"Python中怎么使用selenium爬取淘宝商品信息",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Python中怎么使用selenium爬取淘宝商品信息"吧!
具体代码如下:
# encoding=utf-8__author__ = 'Jonny'__location__ = '西安'__date__ = '2018-05-14''''需要的基本开发库文件:requests,pymongo,pyquery,selenium开发流程: 搜索关键字:利用selenium驱动浏览器搜索关键字,得到查询后的商品列表 分析页码并翻页:得到商品页码数,模拟翻页,得到后续页面的商品列表 分析提取商品内容:利用PyQuery分析页面源代码,解析获得商品列表信息 存储到MongDB中:将商品的信息列表存储到数据库MongoDB。'''import requestsfrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.common.exceptions import TimeoutExceptionfrom pyquery import PyQuery as pqimport pymongoimport reimport timebrowser = webdriver.Chrome()wait = WebDriverWait(browser,10)client = pymongo.MongoClient('localhost',27017)mongo = client['taobao']def searcher(): url = 'https://www.taobao.com/' browser.get(url=url) try: #判断页面加载是够成功,设置等待时间 #判断位置1:搜索输入框是否加载完成 input_kw = wait.until( EC.presence_of_element_located((By.CSS_SELECTOR, '#q')) ) #判断位置2:搜索输入框对应的搜索按键是否加载完成 submit = wait.until(EC.element_to_be_clickable( (By.CSS_SELECTOR,'#J_TSearchForm > div.search-button > button')) ) input_kw.send_keys('男装') submit.click() #等待页面加载完成,便于准确判断网页的总页数 page_counts = wait.until( EC.presence_of_element_located( (By.CSS_SELECTOR,'#mainsrp-pager > div > div > div > div.total')) ) parse_page() return page_counts.text except TimeoutException as e: print(e.args) return searcher()#实现翻页def next_page(page_number): try: # 判断页面加载是够成功,设置等待时间 # 判断位置1:页面跳转输入页是否加载完成 input_page = wait.until( EC.presence_of_element_located((By.CSS_SELECTOR, '#mainsrp-pager > div > div > div > div.form > input')) ) # 判断位置2:确认按键是否加载完成 submit = wait.until(EC.element_to_be_clickable( (By.CSS_SELECTOR, '#mainsrp-pager > div > div > div > div.form > span.btn.J_Submit')) ) input_page.send_keys(page_number) submit.click() #判断翻页是否成功 wait.until(EC.text_to_be_present_in_element( (By.CSS_SELECTOR,'#mainsrp-pager > div > div > div > ul > li.item.active'),str(page_number)) ) parse_page() except TimeoutException as e: print(e.args) next_page(page_number)#对页面进行数据处理def parse_page(): # wait.until(EC.presence_of_element_located(By.CSS_SELECTOR,'#mainsrp-itemlist > div > div')) wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#mainsrp-itemlist .items .item'))) html = browser.page_source doc = pq(html) items = doc('#mainsrp-itemlist .items .item').items() for item in items: goods = { 'image':item.find('.pic .img').attr('src'), 'price':item.find('.price').text(), 'deal':item.find('.deal-cnt').text()[:-3], 'title':item.find('.title').text(), 'shop':item.find('.shop').text(), 'location':item.find('.location').text() } print(goods) data_storage(goods)#将数据存入数据库def data_storage(goods): try: if mongo['mongo_sheet'].insert(goods): print('Successfully storage!') except Exception as e: print('failedly storage!',goods)def main(): text = searcher() print(text) #获取总页数 pages = int(re.compile('(\d+)').search(text).group(0)) print(pages) for i in range(2,pages+1): next_page(i) browser.close()if __name__ == '__main__': main()
到此,相信大家对"Python中怎么使用selenium爬取淘宝商品信息"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
商品
页面
信息
搜索
位置
数据
淘宝
成功
内容
分析
输入
关键
关键字
按键
数据库
时间
页数
页码
存储
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
项目实施和软件开发
mqtt java服务器
联想服务器虚拟化设计
可信溯源网络技术
邯郸电信DNS服务器地址是
海南网络时钟服务器云主机
数据库 对象
中国移动网络安全是干什么的
网络安全手抄报六年级清晰
安卓软件开发游戏
招聘程序员的要求软件开发
宝塔面板如何隐藏服务器ip
富士通服务器安装win系统
网络安全应庙招聘岗位
数据库属性专业英文字母
广州地铁软件开发岗待遇
数据库版本是706
我的世界局域网房间算服务器吗
注册计算机软件开发学什么程序
服务器如何关闭增强安全设置
高中网络安全知识资料
mc服务器权限插件
如何把网络安全画在手机上
清如许是哪个服务器
ciw中国网络安全讲师认证证书
软件开发合同模版免费下载
从哲学角度分析网络安全问题
聚合支付软件开发多少钱
如何将数据库嵌入网站
三级网络技术优秀多少分