xpath库可以非常方便的读取HTML源代码的标签信息

本代码示例读取电影的源代码信息

代码如下:

#1、导入相应的库
import requests
from lxml import etree #导入解析库lxml.专门用来解析xml数据
import lxml
import random
#2、定义函数为获取网页源代码
def gethtml(page): #定义读取网页源代码的函数ge参数是页码
if page==1:
url=";
else:
url=";+str(2)+".htm"
agent1 = {
"User-Agent": "Mozilla (Windows NT 10.0; Win64; x64) AppleWebKi (KHTML, like Gecko) Chrome Safari;} # 设定请求头的值agent1
agent2 = {
"User-Agent": "Mozilla (Windows NT 10.0; WOW64) AppleWebKi (KHTML, like Gecko) Chrome Safari;} # 设定请求头的值agent2
agent3 = {
"User-Agent": "Mozilla (X11; Linux x86_64) AppleWebKi (KHTML, like Gecko) Chrome Safari;} # 设定请求头的值agent3
list1 = [agent1, agent2, agent3] # 设置3个请求头组成的列表,并赋值给列表list1
headers=random.choice(list1)
try:
response = reque(url, headers=headers) # 伪装浏览器对网站进行get请求,并将请求结果赋值给response
re = re # 根据内容解析出网页的编码格式并赋值给re
html = re # 将网页的源代码赋值给html
res_xpath = e(html) #下面是将网页变成xpath结构
print("解析的网页对象res_xpath:",res_xpath)
result1=re("/html/head/title") #对网页的头部标题对象进行解析,并赋值给result1
result2=re("/html/head/title/text()") #对网页的头部标题对象的信息进行解析,并赋值给result2
print("解析的title对象:",result1) #打印解析的标题对象
print("标题内容:",result2) #打印解析的标题内容
result3=re('/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', '下一页', '尾页']

图片示例如下:

电影网站

pycharm代码和代码运行结果

相关推荐