昨日回顾

一、爬取豆瓣电影top250

1.爬取电影页

2.解析提取电影信息

3.保存数据

二、Selenium请求库

驱动浏览器往目标网站发送请求,获取响应数据

-不需要分析复杂的通信流程

-执行js代码

-获取动态数据

三、Selenium使用

driver = webdriver.Chrome()

隐式等待

driver.get('网站') 往某个网站发送请求

显式等待

driver.close()

四、选择器

element:查找一个

elements:查找多个

by_id

by_class_name

by_name

by_link_text

by_partial_link_text

by_css_selector

今日内容

一、Selenium剩余部分

1.元素交互操作

1.1 点击,清除

click

clear

示例:

from selenium import webdriver
from selenium.webdriver.common.by import By #按照什么方式查找,By.Id,By.CSS_SELECTOR
from selenium.webdriver.common.keys import Keys #键盘按键操作
from selenium.webdriver.support import expected_conditions as EC #和下面WebDriverWait一起用的
from selenium.webdriver.support.wait import WebDriverWait #等待页面加载某些元素import timedriver = webdriver.Chrome(r'C:\Program Files (x86)\chromedriver.exe')try:driver.implicitly_wait(10)driver.get("https://www.jd.com/")time.sleep(5)#点击、清除input = driver.find_element_by_id('key')input.send_keys('围城')search = driver.find_element_by_class_name('button')search.click()time.sleep(3)input2 = driver.find_element_by_id('key')input2.clear()time.sleep(1)input2.send_keys('墨菲定律')input2.send_keys(Keys.ENTER)time.sleep(10)
finally:driver.close()
1.2 Action Chains

是一个动作链对象,

from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By #按照什么方式查找,By.Id,By.CSS_SELECTOR
from selenium.webdriver.common.keys import Keys #键盘按键操作
from selenium.webdriver.support import expected_conditions as EC #和下面WebDriverWait一起用的
from selenium.webdriver.support.wait import WebDriverWait #等待页面加载某些元素import timedriver = webdriver.Chrome(r'C:\Program Files (x86)\chromedriver.exe')try:driver.implicitly_wait(10)driver.get('http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')time.sleep(5)driver.switch_to.frame('iframeResult')time.sleep(1)#获取动作链对象action = ActionChains(driver)source = driver.find_element_by_id('draggable')target = driver.find_element_by_id('droppable')#方式一#秒移# action.drag_and_drop(source, target).perform() #拟定好一个动作。需要调用执行方法.perform# 方式二# 一点点移动#找到滑动距离print(source.tag_name)print(source.text)print(source.size)print(target.location)print(source.location)x=target.location['x']-source.location['x']#按住div,不同动作不能公用一个ActionChainsActionChains(driver).click_and_hold(source).perform()s = 0while s < x:#每一次都要调用一次ActionChainsActionChains(driver).move_by_offset(xoffset=2, yoffset=0).perform()s += 2time.sleep(0.1)#放下divActionChains(driver).release(source).perform()time.sleep(10)finally:driver.close()
1.3 fram切换
driver.switch_to.frame(frame 的id名)
1.4 执行js代码
driver.get("https://www.baidu.com/")driver.execute_script('''alert("你好")'''
)
time.sleep(5)
1.5 其他
#模拟浏览器的前进后退
import time
from selenium import webdriverbrowser=webdriver.Chrome()
browser.get('https://www.baidu.com')
browser.get('https://www.taobao.com')
browser.get('http://www.sina.com.cn/')#后退
browser.back()
time.sleep(10)
#前进
browser.forward()
browser.close()

二、练习:爬取京东商品信息

简单版本

from selenium import webdriver
from selenium.webdriver.common.keys import Keys #键盘按键操作driver = webdriver.Chrome(r'C:\Program Files (x86)\chromedriver.exe')
try:driver.implicitly_wait(10)driver.get('https://www.jd.com/')# 往京东主页输入墨菲定律input_tag = driver.find_element_by_id('key')input_tag.send_keys('墨菲定律')input_tag.send_keys(Keys.ENTER)time.sleep(2)goods = driver.find_elements_by_class_name('gl-item')for good in goods:# print(good)#商品名称name = good.find_element_by_css_selector('.p-name em').text# print(name)#商品价格price = good.find_element_by_class_name('p-price').text#商品链接url = good.find_element_by_css_selector('.p-name a').get_attribute('href')#商品评价commit = good.find_element_by_class_name('p-commit').textgood_content = f'''商品名称:{name}商品价格:{price}商品链接:{url}商品评价:{commit}\n'''print(good_content)with open('jd.txt','a',encoding='utf-8') as f:f.write(good_content)print("写入成功")finally:driver.close()

改良版本

(加入了自动下拉加载商品与点击下一页):

from selenium import webdriver
from selenium.webdriver.common.keys import Keys #键盘按键操作def get_goods(driver):num = 1js_code = '''window.scrollTo(0,5000)'''driver.execute_script(js_code)try:goods = driver.find_elements_by_class_name('gl-item')for good in goods:# print(good)# 商品名称name = good.find_element_by_css_selector('.p-name em').text# print(name)# 商品价格price = good.find_element_by_class_name('p-price').text# 商品链接url = good.find_element_by_css_selector('.p-name a').get_attribute('href')# 商品评价commit = good.find_element_by_class_name('p-commit').textgood_content = f'''num:{num}商品名称:{name}商品价格:{price}商品链接:{url}商品评价:{commit}'''print(good_content)with open('jd.txt', 'a', encoding='utf-8') as f:f.write(good_content)num += 1print("写入成功")#找到下一页next_tag = driver.find_element_by_class_name('pn-next')next_tag.click()time.sleep(5)get_goods(driver)finally:driver.close()if __name__ == '__main__':driver = webdriver.Chrome(r'C:\Program Files (x86)\chromedriver.exe')try:driver.implicitly_wait(10)driver.get('https://www.jd.com/')# 往京东主页输入墨菲定律input_tag = driver.find_element_by_id('key')input_tag.send_keys('墨菲定律')input_tag.send_keys(Keys.ENTER)get_goods(driver)finally:driver.close()

转载于:https://www.cnblogs.com/Crystal-Zh/p/11126695.html

04Selenium剩余部分及练习:爬取京东商品信息相关推荐

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

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

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

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

  3. layui获取input信息_python爬虫—用selenium爬取京东商品信息

    python爬虫--用selenium爬取京东商品信息 1.先附上效果图(我偷懒只爬了4页) 2.京东的网址https://www.jd.com/ 3.我这里是不加载图片,加快爬取速度,也可以用Hea ...

  4. python爬取京东商品信息代码_爬取京东商品信息

    利用 BeautifulSoup + Requests 爬取京东商品信息并保存在Excel中 一.查看网页信息 打开京东商城,随便输入个商品,就选固态硬盘吧 先看看 URL 的规律,可以看到我们输入的 ...

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

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

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

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

  7. Selenium介绍--实例爬取京东商品信息与图片

    目录 一.Selenium简介 二.Selenium组成 三.Selenium特点 四.Selenium的基本使用 1.下载所用浏览器需要的驱动 2.创建项目并导入依赖 3.入门 3.代码演示 五.实 ...

  8. python爬取京东商品属性_python爬虫小项目:爬取京东商品信息

    #爬取京东手机信息 import requests from bs4 import BeautifulSoup from selenium import webdriver import re imp ...

  9. selenium+lxml爬取京东商品信息

    京东商城: 京东JD.COM-专业的综合网上购物商城,中国自营式电商企业,创始人刘强东担任京东集团董事局主席兼首席执行官.销售超数万品牌.4020万种商品,囊括家电.手机.电脑.母婴.服装等13大品类 ...

  10. 正则爬取京东商品信息并打包成.exe可执行程序。

    本文爬取内容,输入要搜索的关键字可自动爬取京东网站上相关商品的店铺名称,商品名称,价格,爬取100页(共100页) 代码如下: import requests import re # 请求头 head ...

最新文章

  1. python中计数_Python中的统计计数
  2. 汇总|目标检测中的数据增强、backbone、head、neck、损失函数
  3. Numba——python面向数组高性能计算库
  4. xCode中工程相关的一些处理:一个工程包含多个Target的用途和使用方法【转】...
  5. Kotlin特色之object、let、with、run、apply、also函数的使用
  6. 解决sybase数据库的死锁问题
  7. 2021.01.29 Visual QA论文阅读
  8. eclipse 安装egit插件
  9. 修改后的RSA 加密解密 可用于制作liscence
  10. 2016-2017中国房地产走势大数据报告亮相
  11. 03月11日单应矩阵与鸟瞰图IPM变换
  12. WPF :MVVM简介
  13. 经典的经典:《自然哲学的数学原理》
  14. ie11安装程序无法继续 因为你的计算机,ie11无法安装解决方法详解
  15. 致信oa系统服务器ip,OA系统登陆考勤IP控制
  16. 杨令云玩过的那些FC游戏-魔道士的阴谋(二)
  17. 【Python】使用分隔符拆分字符串
  18. 8b/10b编码技术系列(二):Disparity、RD、8b/10b编码
  19. 基于Ubuntu20.04运行OP-TEE_3.17.0_QEMU_V8的环境搭建
  20. 用html5 js实现浏览器全屏

热门文章

  1. 装饰工程预算软件测试自学,学预算要多久能学出来 预算没人带怎么自学
  2. python 通配符用法,python - 通配符
  3. 计算机软件安装流程,计算机软件系统快速安装流程简介
  4. matlab光学原理仿真应用衍射,基于Matlab的光学衍射实验仿真
  5. 接口测试工具Hoppscotch
  6. PCB走线电感、导线电感、过孔电感 计算公式
  7. 计算机ps基础知识大全,全国计算机ps一级考试题型
  8. libcef-框架架构中概念介绍-命令行参数-元素布局-应用程序结构(二)
  9. vue 点击按钮改变颜色
  10. unity点击按钮跳转页面