爬虫京东网selenium(详细
在爬虫京东商品的过程中,遇到的问题:
页面未加载完全,就开始获取数据,应该等待(time.sleep)
**工具:**selenium
库:
from selenium import webdriver
#爬虫网站用到的库
from selenium.webdriver.common.by import By
#在find_element时使用
from selenium.webdriver.support.wait import WebDriverWait
# 在等待加载时使用
from selenium.webdriver.support import expected_conditions as EC
#等待什么时候呢?期待的conditions的时候
import time
#用于模拟人的操作 确保网站加载完成,再进行搜索
开始模拟你的操作:
#打开浏览器
driver = webdriver.Chrome()
#进入京东网 —有自带的get方法,所以就不用模拟找搜索框,再输入,按确定这个过程了
url = "https://www.jd.com/"
driver.get(url)
#搜索要查找的商品,我这里是一本书—这里要有找搜索框、按钮,输入搜索内容,按下按钮,这个过程
#寻找搜索框
#寻找之前创建一个wait对象
wait = WebDriverWait(driver,10,0.5)
#wait共10秒,每0.5秒问一次,有没有加载好
inputbox=wait.until(EC.presence_of_element_located((By.XPATH,"/html/body/div[1]/div[4]/div/div[2]/div/div[2]/input")))
#输入框输入汉字
inputbox.send_keys("Linux就该这么学")
#找到按钮并点击
button = driver.find_element(By.XPATH,"/html/body/div[1]/div[4]/div/div[2]/div/div[2]/button")
button.click()
#按钮点击完要等待一秒,这是规矩,因为点击完后,页面加载还需要时间
time.sleep(1)
#像京东淘宝这种网站,如果滚动条不滚动到下面,你就获取不了下面的信息
#这是一种反爬虫机制,所以我们要模拟人的行为去控制滚动条
#滚动条到最下面
driver.excute_script('window.scrollTo(0,document.body.scrollHeight);')
#滚动后要等待加载一秒,这是规矩
time.sleep(1)
#准备工作完成,开始获取书名
xpath= '/html/body/div[5]/div[2]/div/div[1]/div/div[2]/ul/li/div/div[@class="p-name"]/a/em'
titles = wait.until(EC_presence_of_all_elements_located((By.PATH,xpath))
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfifibb
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13