python 批量自动搜索、自动抓取需要的信息简单教程【selenium】

您所在的位置:网站首页 如何从网页上提取数据 python 批量自动搜索、自动抓取需要的信息简单教程【selenium】

python 批量自动搜索、自动抓取需要的信息简单教程【selenium】

2024-07-13 04:27| 来源: 网络整理| 查看: 265

文章目录 一、安装selenium以及Chrome二、XPath技术和正则表达式技术三、获取网页某个位置的xpath四、一个简单的示例selenium库的更多功能和函数,需要自己进一步学习 本文主要使用工具为selenium,并以Chrome浏览器为例。

selenium是为web自动化测试开发的,可以模拟任何网页操作,学会了,不仅可以爬取信息,还可以重复做各种无脑网页操作。

selenium适合爬取动态网页,所见即所得,虽然慢了些。有人不喜欢,但个人觉得挺方便的,因为不用学习复杂的各种网页解析技能。但有些反爬网站,针对selenium的,那就得换工具了。

但对于致力于学习爬虫的小伙伴,不建议学这个。老老实实学爬虫该学的各种技术,能够进行大规模甚至并行乃至分布式爬取。

静态网页的话,爬取较为简单。教程很多。

一、安装selenium以及Chrome

教程链接 注意: 使用不同的浏览器,需要配置不同的浏览器驱动。

二、XPath技术和正则表达式技术

需要学习XPath技术和正则表达式技术,xpath能够让程序快速定位,正则表达式打辅助,用来进一步提取需要的信息。

三、获取网页某个位置的xpath

Ctrl + shift + c 打开网页源代码,用鼠标左键选择网页中你想定位的地方,源代码对应位置会高亮。鼠标右键点击高亮的代码,复制xpath

注意: 直接复制的xpath pattern虽然能用,但比较死板不够灵活,网页的结构发生微小的变动,就无法定位了。需要自己进一步根据网页源代码改写xpath路径。找出源码中不变的xpath pattern用来定位。

四、一个简单的示例 from selenium import webdriver import pandas as pd import numpy as np query_list = ['deep learning' ] result_list = [] failed = [] driver = webdriver.Chrome() for query_text in query_list: try: driver.get('https://www.google.com') driver.implicitly_wait(1) # 定位搜索框,并输入查询词 driver.find_element_by_xpath('/html/body/div[1]/div[3]/form/div[2]/div[1]/div[1]/div/div[2]/input').send_keys('%s\n' % query_text) # 这里的xpath就是右键复制过来的 except: result_list.append(np.nan) continue try: res = driver.find_element_by_xpath('//*[@id="wp-tabs-container"]/div[1]/div[3]/div/div/div/div[2]/h2/span').text # 这里的xpath就是右键复制过来的 result_list.append(res) except: result_list.append(np.nan) res = pd.DataFrame({'drug_name': query_list, 'result':result_list }) print(res) selenium库的更多功能和函数,需要自己进一步学习


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3