网站首页 > 技术文章 正文
xpath库可以非常方便的读取HTML源代码的标签信息
本代码示例读取电影的源代码信息
代码如下:
#1、导入相应的库 import requests from lxml import etree #导入解析库lxml.专门用来解析xml数据 import lxml import random #2、定义函数为获取网页源代码 def gethtml(page): #定义读取网页源代码的函数gethtml.page参数是页码 if page==1: url="http://www.dygang.com/dsj/" else: url="http://www.dygang.com/dsj/index_"+str(2)+".htm" agent1 = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36"} # 设定请求头的值agent1 agent2 = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"} # 设定请求头的值agent2 agent3 = { "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36"} # 设定请求头的值agent3 list1 = [agent1, agent2, agent3] # 设置3个请求头组成的列表,并赋值给列表list1 headers=random.choice(list1) try: response = requests.get(url, headers=headers) # 伪装浏览器对网站进行get请求,并将请求结果赋值给response response.encoding = response.apparent_encoding # 根据内容解析出网页的编码格式并赋值给response.encoding html = response.text # 将网页的源代码赋值给html res_xpath = etree.HTML(html) #下面是将网页变成xpath结构 print("解析的网页对象res_xpath:",res_xpath) result1=res_xpath.xpath("/html/head/title") #对网页的头部标题对象进行解析,并赋值给result1 result2=res_xpath.xpath("/html/head/title/text()") #对网页的头部标题对象的信息进行解析,并赋值给result2 print("解析的title对象:",result1) #打印解析的标题对象 print("标题内容:",result2) #打印解析的标题内容 result3=res_xpath.xpath('/html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/a/text()') #对页码信息进行解析,并赋值给result3 print("电影页码信息:",result3) #打印电影的页码信息 except: #当接收错误时 print("第{}页爬取失败".format(page)) #打印第多少页爬取失败 if __name__ == '__main__': gethtml(2) #调用读取第二页的网页源代码
代码运行结果如下:
解析的网页对象res_xpath: <Element html at 0x1841a952088>
解析的title对象: [<Element title at 0x1841b34ecc8>]
标题内容: ['国剧_电影港']
电影信息: ['\xa0', ' ', '首页', '上一页', '1', '3', '4', '5', '6', '7', '8', '9', '10', '下一页', '尾页']
图片示例如下:
猜你喜欢
- 2024-11-14 Playwright自动化测试工具之元素定位实战
- 2024-11-14 利器 | AppCrawler 自动遍历测试实践(二):定制化配置
- 2024-11-14 java组件HuTool相关工具类的使用二
- 2024-11-14 手把手教你爬取热门小说《诡秘之主》
- 2024-11-14 Python爬虫之xpath用法全解析(py xpath)
- 2024-11-14 怎么用xpath写drissionpage?或者用相对位置?
- 2024-11-14 通过python+Xpath实现抓取某网站推荐的歌曲
- 2024-11-14 Python自动化工具(python写自动化工具)
- 2024-11-14 web自动化测试——xpath常用案例(web自动化测试平台)
- 2024-11-14 手把手教你如何用Python爬取网站文本信息
- 最近发表
-
- count(*)、count1(1)、count(主键)、count(字段) 哪个更快?
- 深入探索 Spring Boot3 中 MyBatis 的 association 标签用法
- js异步操作 Promise fetch API 带来的网络请求变革—仙盟创梦IDE
- HTTP状态码超详细说明_http 状态码有哪些
- 聊聊跨域的原理与解决方法_跨域解决方案及原理
- 告别懵圈!产品新人的接口文档轻松入门指南
- 在Javaweb中实现发送简单邮件_java web发布
- 优化必备基础:Oracle中常见的三种表连接方式
- Oracle常用工具使用 - AWR_oracle工具有哪些
- 搭载USB 3.1接口:msi 微星 发布 990FXA Gaming 游戏主板
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)