首页 > 编程语言 >python爬虫学习小记——lxml板块

python爬虫学习小记——lxml板块

时间:2023-08-04 13:22:49浏览次数:55  
标签:info lxml etree title python number 爬虫 print

python爬虫学习小记——lxml板块

lxml是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高。

XPath,全称XML Path Language,即XML路径语言,它是一门在XML文档中查找信息的语言,它最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索。

XPath的选择功能十分强大,它提供了非常简明的路径选择表达式,另外,它还提供了超过100个内建函数,用于字符串、数值、时间的匹配以及节点、序列的处理等,几乎所有我们想要定位的节点,都可以用XPath来选择。

Xpath语法总结看这篇:XPath定位语法总结_xpath语法_小白典的博客-CSDN博客

导入

from lxml import etree

接下来我将用个简单的实例来体现怎么使用lxml板块

#获取起点网前5页的书名以及其作者
import requests
import os
from lxml import etree

i=1
if not os.path.exists("123.txt"):
    os.makedev("123.txt")
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE'
}
number=1

for i in range(1,6):
    url = f"https://www.qidian.com/all/page{i}/"
    responds = requests.get(url, headers)#获取相应对象
    print(responds.encoding)
    html = responds.text#获取其str格式
    tree=etree.HTML(html)#实例化etree对象,只有etree对象才能进行xpath操作
    all_title=tree.xpath("//div[@class='book-mid-info']/h2/a/text()")#获取class为book-mid-info的div下面的h2的a标签的内容
    all_info=tree.xpath("//p[@class='intro']/text()")
    for title in all_title:
        with open("ff.txt","a") as f:
            print(f"{number}.{title}",file=f)
            print(f"简介:{all_info[(number - 1) % 20]}",file=f)
            number += 1
            print("成功获取")

同时我们可以用@加属性名获取到对应标签的属性值。

 

 

#获取起点网前5页的书名以及其作者
import requests
import os
from lxml import etree

i=1
if not os.path.exists("123.txt"):
os.makedev("123.txt")
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE'
}
number=1

for i in range(1,6):
url = f"https://www.qidian.com/all/page{i}/"
responds = requests.get(url, headers)#获取相应对象
print(responds.encoding)
html = responds.text#获取其str格式
tree=etree.HTML(html)#实例化etree对象,只有etree对象才能进行xpath操做
all_title=tree.xpath("//div[@class='book-mid-info']/h2/a/text()")#获取class为book-mid-info的div下面的h2的a标签的内容
all_info=tree.xpath("//p[@class='intro']/text()")
for title in all_title:
with open("ff.txt","a") as f:
print(f"{number}.{title}",file=f)
print(f"简介:{all_info[(number - 1) % 20]}",file=f)
number += 1
print("成功获取")

标签:info,lxml,etree,title,python,number,爬虫,print
From: https://www.cnblogs.com/Curitaos/p/17605630.html

相关文章

  • python爬虫学习小记——request模块
    要学习爬虫我们首先要了解requests这个模块Pythonrequests模块Pythonrequests是一个常用的HTTP请求库,可以方便地向网站发送HTTP请求,并获取响应结果。requests模块比 urllib 模块更简洁。使用requests发送HTTP请求需要先导入requests模块:importrequests......
  • Python如何开发桌面应用程序?Python基础教程,第十三讲,图形界面
    当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用户界面)编程,用Python也可以写出漂亮的桌面程序,建议此次课程大家稍作了解不要浪费太多时间,因为没有哪家......
  • Python | 开源项目you-get的下载和使用
    安装前提条件建议使用以下依赖项:PythonFFmpeg(可选)RTMPDump$pythonPython3.9.11(tags/v3.9.11:2de452f,Mar162022,14:33:45)[MSCv.192964bit(AMD64)]onwin32Type"help","copyright","credits"or"license"formoreinformat......
  • python--compile、exec、eval函数使用
    compile(source,filename,mode,flags=0,dont_inherit=False,optimize=-1)参数说明:source:字符串或AST对象,表示需要进行编译的python代码filename:指定需要编译的代码文件,如果不是文件读取代码则传递一些可辨认的值.mode:用于标识必须当做那类代表来编译;(如果source是......
  • python调用RabbitMQ
    本文不涉及较难的操作,仅仅提供常用的生产消息和消费消息的方式。--好像也没啥花里胡哨的操作1、准备想要python调用rabbitMQ需要安装pika,所有需要提前安装好pika包#全局pipinstallpika;#如果用的anaconda的上面那个装不上可以试试这个?condainstallpika;2、代......
  • python 操作oracle
    表DDL--"C##TAPDATA_TEST".ALAM3definitionCREATETABLE"C##TAPDATA_TEST"."ALAM3"( "UID1"VARCHAR2(100)NOTNULLENABLE, "UID2"VARCHAR2(100)NOTNULLENABLE, "COLUMN1"VARCHAR2(100),......
  • 使用HTTP隧道时如何应对目标网站的反爬虫监测?
    在进行网络抓取时,我们常常会遇到目标网站对反爬虫的监测和封禁。为了规避这些风险,使用代理IP成为一种常见的方法。然而,如何应对目标网站的反爬虫监测,既能保证数据的稳定性,又能确保抓取过程的安全性呢?本文将向您分享一些关键策略,帮助您迈过反爬虫的障碍,提高抓取成功率,并保护自己的......
  • 希尔排序的Python实现,并逐行解释代码
    当然,我可以为您提供希尔排序的Python实现,并逐行解释代码。以下是一个示例:defshell_sort(arr):n=len(arr)gap=n//2#初始化间隔whilegap>0:foriinrange(gap,n):temp=arr[i]j=i#对间隔为gap......
  • 基于HTTP代理的爬虫技术研究
    在当今信息化的时代,网络爬虫已经成为许多企业、学术机构和个人不可或缺的工具。对于那些需要大量数据的用户群体而言,爬虫技术的价值就像是一片无垠的宝藏。而基于HTTP代理的爬虫技术,在这个领域中展现出真正的魅力和应用前景。首先,让我们先理解一下HTTP代理技术的重要性。作......
  • Python爬虫遇到重定向问题解决办法汇总
    在进行Python爬虫任务时,遇到重定向问题是常见的问题之一。重定向是指在发送请求时,服务器会返回一个新的URL,将请求重新定向到该URL。为了帮助您解决这个问题,本文将提供一些实用的解决办法,并给出相关的代码示例,希望能对您的爬虫任务有所帮助。了解重定向问题重定向问题通常是由于网......