Python中怎么使用selenium爬取淘宝商品信息
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇内容主要讲解"Python中怎么使用selenium爬取淘宝商品信息",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Python中怎么使用seleniu
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
北京市网络安全知识
oracle数据库数据迁移
ci框架 连接数据库
关于国家网络安全文件
阜新市天气预报软件开发
中山市凯源网络技术有限公司
绝地求生外服服务器怎么下载
怎么将服务器的数据转化成表格
华三网络技术大赛基础知识
数据库关联链接是什么原因
网络安全模式下无法上网吗
中学生应该怎样做到网络安全
国家网络安全大会是哪年召开
MC服务器查询 API文档
网络技术与应用网络诊断命令
软件开发切界面
青岛浩瀚星网络技术有限公司
学软件测试好还是软件开发好
微信小程序读取数据库
梦幻西游姑苏城服务器
张舟怡帆网络技术公司面试条件
文件服务器的分类属性
联想服务器id用处
小米笔记本pro 软件开发
登录运维服务器的方式是什么
南京邮电大学网络安全校区
安阳零基础学软件开发
单位网络安全规定及制度
ffmpeg服务器性能
用外国的数据库安全