(干货)你知道python爬虫定位网页元素有几种方式嘛,今天带你一一了解。
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
以下文章来源于腾讯云 作者:拓荒者
( 想要学习Python?Python学习交流群:1039649593,满足你的需求,资料都已经上传群文件流,可以自行下载!还有海量最新2020python学习资料。 )
在做爬虫的过程中,网页元素的定位是比较重要的一环,本文总结了python爬虫中比较常用的三种定位网页元素的方式。
1.普通的BeautifulSoup find系列操作
2.BeautifulSoup css选择器
- xpath
这三种方式灵活运用,再配合上正则表达式,没有什么网页能难倒你啦。
我们以获取豆瓣电影top250第一页的电影标题为例来比较:
import requestsfrom bs4 import BeautifulSoupfrom lxml import etree# 通过find定位标签# BeautifulSoup文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.htmldef bs_parse_movies(html):movie_list = []soup = BeautifulSoup(html, "lxml")# 查找所有class属性为hd的div标签div_list = soup.find_all('div', class_='hd')# 获取每个div中的a中的span(第一个),并获取其文本for each in div_list:movie = each.a.span.text.strip()movie_list.append(movie)return movie_list# css选择器定位标签# 更多ccs选择器语法:http://www.w3school.com.cn/cssref/css_selectors.asp# 注意:BeautifulSoup并不是每个语法都支持def bs_css_parse_movies(html):movie_list = []soup = BeautifulSoup(html, "lxml")# 查找所有class属性为hd的div标签下的a标签的第一个span标签div_list = soup.select('div.hd > a > span:nth-of-type(1)')# 获取每个span的文本for each in div_list:movie = each.text.strip()movie_list.append(movie)return movie_list# XPATH定位标签# 更多xpath语法:https://blog.csdn.net/gongbing798930123/article/details/78955597def xpath_parse_movies(html):et_html = etree.HTML(html)# 查找所有class属性为hd的div标签下的a标签的第一个span标签urls = et_html.xpath("//div[@class='hd']/a/span[1]")movie_list = []# 获取每个span的文本for each in urls:movie = each.text.strip()movie_list.append(movie)return movie_listdef get_movies():headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36','Host': 'movie.douban.com'}link = 'https://movie.douban.com/top250'r = requests.get(link, headers=headers, timeout=10)print("响应状态码:", r.status_code)if 200 != r.status_code:return None# 三种定位元素的方式:# 普通BeautifulSoup findreturn bs_parse_movies(r.text)# BeautifulSoup css selectreturn bs_css_parse_movies(r.text)# xpathreturn xpath_parse_movies(r.text)movies = get_movies()print(movies)
(干货)你知道python爬虫定位网页元素有几种方式嘛,今天带你一一了解。相关推荐
- python 爬虫 数据抓取的三种方式
python 爬虫 数据抓取的三种方式 常用抽取网页数据的方式有三种:正则表达式.Beautiful Soup.lxml 1.正则表达式 正则表达式有个很大的缺点是难以构造.可读性差.不易适用未来 ...
- Python之字典查找元素(3种方式)
本文描述的是查找字典的某一个元素(字典遍历元素请点击->这里) 上下文代码 smart_girl = {"name":"yuan wai", " ...
- python 爬虫The One的 数据两种方式
系统:windows 语言:python 工具:pycharm 需要的包:beautifulsoup.requests 安装以上的包,方法类似, 手动方式 任务:爬300条.采用多线程.非多线程 单线 ...
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)
转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...
- python怎么模拟浏览器交互_干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏)...
今天为大家带来的内容是:干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏) 文章主要介绍了python爬虫模拟浏览器的两种方法,结合实例形式分析了Python爬虫模拟浏览器的两种常见操 ...
- seleniumpython定位网页元素方法_使用Selenium对网页元素进行定位的诸种方法
使用Selenium进行自动化操作,首先要做的就是通过webdriver的get()方法打开一个URL链接. 在打开链接,完成页面加载之后,就可以通过Selenium提供的接口,在页面上进行各种操作了 ...
- seleniumpython定位网页元素方法_Python+Selenium 定位元素
1.摘取网页上所有邮箱 练习场景:在某一个网页上有些字段是我们感兴趣的,我们希望摘取出来,进行其他操作.但是这些字段可能在一个网页的不同地方.例如,我们需要在关于百度页面-联系我们,摘取全部的邮箱. ...
- python爬虫解决网页重定向问题
python爬虫解决网页重定向问题 参考文章: (1)python爬虫解决网页重定向问题 (2)https://www.cnblogs.com/zhumengke/articles/9618368.h ...
- html css整理笔记,HTML CSS整理笔记 (八) 定位网页元素
----8 定位网页元素---- 51.Position属性:指定盒子的位置,相对它父级的位置或它自身应该在的位置. (1)static 默认无定位,元素按照标准文档布局. (2)relative相对 ...
最新文章
- boost::fusion::count用法的测试程序
- layui的checkbox示例
- html5简历阅读,HTML5 移动简历模板
- jQuery Mobile 学习资料
- Power Shell08当你远程运行powershell指令(不需要管理员权限)
- element-ui上传图片的使用upload
- 生鲜电商进入2.0时代,美团还有“后招”吗?
- 后渗透篇:清理windows入侵痕迹总结【详细】
- 动软DBUtility类库DbHelperSQLP实现多数据库连接
- 怎么释放mysql连接_数据库连接释放问题
- 如何看台式机计算机编号,如何查看台式电脑的主机编号和型号
- 教你同时分析圆通快递多个单号的物流情况
- 齿轮标准模数c语言编程,齿轮标准模数可以使用( )表示
- miui11升级鸿蒙,MIUI11稳定版首批推送来了 12款小米机型可升级
- 地震学类毕业论文文献都有哪些?
- SDWAN优化金融行业网络架构
- APFS简要指南(Apple File System Guide)
- Java延时的三种方法
- JavaScript选择器的使用说明
- SVG阴影、渐变,文字