爬虫京东网selenium(超详细)

阅读: 评论:0

爬虫京东网selenium(超详细)

爬虫京东网selenium(超详细)

在爬虫京东商品的过程中,遇到的问题:

页面未加载完全,就开始获取数据,应该等待(time.sleep)

**工具:**selenium

库:

from selenium import webdriver #爬虫网站用到的库

from selenium.webdrivermon.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 = "/"

<(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)

#像京东淘宝这种网站,如果滚动条不滚动到下面,你就获取不了下面的信息

#这是一种反爬虫机制,所以我们要模拟人的行为去控制滚动条

#滚动条到最下面

#滚动后要等待加载一秒,这是规矩

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))

本文发布于:2024-02-01 14:54:51,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170677049337404.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:爬虫   京东   详细   selenium
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23