千家信息网

Python中怎么使用selenium爬取淘宝商品信息

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,本篇内容主要讲解"Python中怎么使用selenium爬取淘宝商品信息",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Python中怎么使用seleniu
千家信息网最后更新 2025年12月01日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安全错误 数据库的锁怎样保障安全 安徽技术管理软件开发平台 数据库c和s代表什么 计算机软件开发行业会计 网上换服务器需要多长时间 三级数据库考试环境 四川儿童虹膜数据库 杭州时讯网络技术有限公司 树莓派java服务器 电信网络安全专业就业方向 酒店软件开发外包 网络技术第四章本章自测答案 清华大学软件开发教材 泰州大数据服务器代理厂家 数据库当前时间的修改 网络安全对比 我的世界服务器计分板文件在哪 互联网是怎么样的科技产业 签名验签服务器管理端 上海广东网络安全培训十大品牌 怎么查数据库最后100数据 联想服务器服务点 梦幻西游哪个服务器好用 恋舞一直显示与服务器断开 网络安全工程师是什么专业 做软件开发的简称什么意思 天津通讯软件开发设施厂家现货 润乾报表支持哪些数据库 poi高德数据库 沧州人工智能软件开发 网络安全工作有年龄限制吗
0