python爬虫——用selenium爬取京东商品信息

1.先附上效果图(我偷懒只爬了4页)

2.京东的网址https://www.jd.com/
3.我这里是不加载图片,加快爬取速度,也可以用Headless无弹窗模式

options = webdriver.ChromeOptions()options.add_experimental_option('prefs', {'profile.managed_default_content_settings.images': 2})#不加载图片browser = webdriver.Chrome(options=options)wait =WebDriverWait(browser,50)#设置等待时间url = 'https://www.jd.com/'data_list = []#设置全局变量用来存储数据keyword="python爬虫"#关键词
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

4.先找到搜索框并用selenium模拟点击(这里发现京东不需要登录就能看到商品信息)

def search():    browser.get('https://www.jd.com/')    try:        input = wait.until(            EC.presence_of_all_elements_located((By.CSS_SELECTOR, "#key"))        )  #等到搜索框加载出来        submit = wait.until(            EC.element_to_be_clickable((By.CSS_SELECTOR, "#search > div > div.form > button"))        )#等到搜索按钮可以被点击        input[0].send_keys(keyword)#向搜索框内输入关键词        submit.click()#点击        total = wait.until(            EC.presence_of_all_elements_located(                (By.CSS_SELECTOR, '#J_bottomPage > span.p-skip > em:nth-child(1) > b')            )        )#记录一下总页码,等到总页码加载出来        html = browser.page_source#获取网页信息        prase_html(html)#调用提取数据的函数(后面才写到)        return total[0].text    except TimeoutError:        search()
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

5.进入了第一页,先写好翻页的函数,需要滑动到底部才能加载后30个商品,总共有60个商品

def next_page(page_number):    try:        # 滑动到底部        browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")        time.sleep(random.randint(1, 3))#设置随机延迟        button = wait.until(            EC.element_to_be_clickable((By.CSS_SELECTOR, '#J_bottomPage > span.p-num > a.pn-next > em'))        )#翻页按钮        button.click()# 翻页动作        wait.until(            EC.presence_of_all_elements_located((By.CSS_SELECTOR, "#J_goodsList > ul > li:nth-child(30)"))        )#等到30个商品都加载出来        # 滑动到底部,加载出后三十个货物信息        browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")        wait.until(            EC.presence_of_all_elements_located((By.CSS_SELECTOR, "#J_goodsList > ul > li:nth-child(60)"))        )#等到60个商品都加载出来             wait.until(            EC.text_to_be_present_in_element((By.CSS_SELECTOR, "#J_bottomPage > span.p-num > a.curr"), str(page_number))        )# 判断翻页成功,高亮的按钮数字与设置的页码一样        html = browser.page_source#获取网页信息        prase_html(html)#调用提取数据的函数    except TimeoutError:        return next_page(page_number)

layui获取input信息_python爬虫—用selenium爬取京东商品信息相关推荐

  1. go爬虫和python爬虫哪个好_python 爬虫实战项目--爬取京东商品信息(价格、优惠、排名、好评率等)-Go语言中文社区...

    利用splash爬取京东商品信息 一.环境 window7 python3.5 pycharm scrapy scrapy-splash MySQL 二.简介 为了体验scrapy-splash 的动 ...

  2. winform模拟登陆网页_Python爬虫使用selenium爬取群成员信息(全自动实现自动登陆)...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: python小爬虫 PS:如有需要Python学习资料的小伙伴可以 ...

  3. Python爬虫使用selenium爬取天猫商品信息

    文章目录 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更加高深的知识. 那么针对这三类人,我 ...

  4. selenium爬取京东商品信息

    开始编写代码之前你应了解ajax 和python基础语法和库,知道异步加载!熟悉html,js.本人ide用的是vscode,浏览器是chrome,python3.7,主要用到了selenium自动化 ...

  5. Selenium 爬取京东商品信息并分页保存

    文章目录 引入包 按url获取页面信息 模拟点击获取页面信息 分析页面信息 查询函数 引入包 from selenium import webdriver from selenium.webdrive ...

  6. Day06,selenium的剩余用法、万能登录破解和爬取京东商品信息,及破解极验滑动验证码...

    一.自动登录抽屉新热榜 from selenium import webdriver import timedriver = webdriver.Chrome(r'D:\BaiduNetdiskDow ...

  7. python爬虫可以爬取哪些有用的东西_Python爬虫系列(十三) 用selenium爬取京东商品...

    这篇文章,我们将通过 selenium 模拟用户使用浏览器的行为,爬取京东商品信息,还是先放上最终的效果图: 1.网页分析 (1)初步分析 原本博主打算写一个能够爬取所有商品信息的爬虫,可是在分析过程 ...

  8. python爬虫爬取京东商品评价_python爬取京东商品信息及评论

    ''' 爬取京东商品信息: 功能: 通过chromeDrive进行模拟访问需要爬取的京东商品详情页(https://item.jd.com/100003196609.html)并且程序支持多个页面爬取 ...

  9. python爬虫爬商品库存_python爬虫实践——爬取京东商品信息

    1 ''' 2 爬取京东商品信息:3 请求url:4 https://www.jd.com/5 提取商品信息:6 1.商品详情页7 2.商品名称8 3.商品价格9 4.评价人数10 5.商品商家11 ...

最新文章

  1. 什么是停止词stopword
  2. openstack 用nova API 指定 compute node 创建 instance
  3. 如何画架构图之C4模型画法
  4. dll 源码_重新编译mono——Android动态更新dll
  5. 俄罗斯为何把微积分下放到中学讲授?
  6. Java命令行界面(第9部分):parse-cmd
  7. cdoj 1252 24点游戏 dfs
  8. 利用SqlConnection获得SqlServer的统计信息
  9. [转]jQuery ListBox Plugin(ListBox插件)
  10. 洛奇英雄传单机版服务器未响应,洛奇英雄传官方网站
  11. 第一篇博客:WPF中 ScrollViewer控件的ScrollIntoView方法
  12. 软考中级软件设计师考试大纲
  13. 使用xlang开发隐形水印制作工具
  14. matlab 自制闹钟程序,原生JS写的一个简单闹钟程序
  15. 类、面向对象(封装、继承、多态),面向过程
  16. 求2的零次方 加 2的一次方 加2的二次方等等的和
  17. Xgboost如何处理缺失值
  18. 第一篇 厚黑学 代序四 狂狷嘲世一教主
  19. 中望3D 2021出图进阶版-3D出图技巧合集
  20. linux嵌入式 控制io口,基于ARM9嵌入式的RS485总线接口设计,自动控制IO口实现通信方向控制...

热门文章

  1. HTTP状态:202、301、304、404、503
  2. vmware的vmnet-概念的解说
  3. 我认为的android入门学习策略
  4. 读书笔记:《时间投资法》之三
  5. Linux CentOS 7 安装 Redis
  6. python——实现简单的强化学习
  7. 一路踩坑构建Dubbo源码
  8. linux如何增加一个进程,linux – 如何增加新生成进程的CPU频率
  9. 主网上线也不开心,EOS背后公司被钓鱼
  10. preg_match_all中的标记