前言
需要借助Python中的第三方库selenium才可以实现。
*此篇博客仅供学习! *
*此篇博客仅供学习! *
*此篇博客仅供学习! *
操作步骤
下载所需环境
下载第三方库 -> selenium(这里我使用CMD终端进行下载)
1.找到当前脚本所在的目录下(我是在D:\xiangmu\Web crawler)
2.打开CMD窗口输入 pip install 第三方库名 -i 镜像网址
这里提供阿里云的PyPI镜像网址:https://mirrors.aliyun.com/pypi/simple
3.下载完成后可以继续输入命令 pip list 查看目录下是否有刚下载的第三方包名
导入并使用到达指定网站
推荐使用谷歌浏览器
dr = webdriver.Chrome()
使用谷歌浏览器
dr.maximize_window()
打开谷歌浏览器后全屏显示
dr.get(‘https://www.dongchedi.com/’)
输入网站网址并使用get方法到达 这里是懂车帝的网址
time.sleep(1)
到达网站加载完成后等待一秒钟
模拟真人操作并爬去一些数据或信息
dr.find_element(By.XPATH,“//div[@id=‘__next’]/header/div/div/div/input”).send_keys(“小米SU7”)
找到输入框的标签并使用send_keys模拟键盘输入数据
XPATH用法:
//<1>[@<2>=‘<3>’]/<4>
往上面定位到一个标签 div 它有详细的 id 值 _next
<1>:标签名称
<2>:它的属性是id就是id是class就是class
<3>:属性的值
<4>:你需要一直向下定位到你输入框的标签,例如上图:
div向下的标签是header在向下是div一直定位到输入框的标签
注意:标签的展开与关闭!没展开的标签并不是需要定位的标签
在XPATH中后面一个标签就以/分割开
dr.find_element(By.XPATH,“//div[@id=‘__next’]/header/div/div/div/button[text()=‘搜索’]”).click()
同样的定位方法找到搜索按钮的标签,使用click进行点击
点击之后页面就会进行跳转 那么需要在给selenium一个窗口否则接下来操作都会无效
代码如下:
windows = dr.window_handles
dr.switch_to.window(windows[1])
在第一个打开网站操作已经是第一个窗口了在python中第一个下标为0
time.sleep(1)
等待一秒钟时间
想要爬去信息的话找到定位标签print()就可以打印在编辑器中了
想要爬去的数据不止一个
使用 find_elements 方法 在循环便利
我想要拿到四个标签中的网址
URL = dr.find_elements(By.XPATH,“//section[@class=‘tw-ml-16 tw-flex tw-items-center tw-pt-3’]/a”)
for w in URL:
print(w.get_attribute(“href”))
get_attribute方法拿去指定属性后面的值
find_element与find_elements的区别是前者是拿取单个值的后者则是拿取多个值的
页面滑动到顶部
在定位标签时记得注意我们看不到的按钮(要滑动滚轮)代码也看不到
wg = dr.find_element(By.XPATH,“//div/span[text()=‘外观’]”).click
我要点击外观按钮
js_gd = “window.scrollTo(0,0)”
使页面自动滚动到顶部(0,0)是窗口左上角的坐标
dr.execute_script(js_gd)
执行JS代码
XPATH中的[text()='外观']是用来更加准确定位的
修改标签的属性值
如上图第三个