千家信息网

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服务器性能 用外国的数据库安全
0