python爬虫--第一个爬虫程序

本文介绍爬虫的基础概念,包括URL、HTTP及用户代理等,并通过一个实例演示如何使用Python的lxml和requests库抓取网页内容,定位并提取特定文本信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、爬虫基本知识

URL(Uniform Resource Locator的缩写):也被称为网页地址,通俗讲就是文件在网络中的位置,URL就是web地址,俗称“网址”。
HTTP是一个客户端(用户)和服务器端(网站)之间进行请求和应答的标准
用户代理(user agent):指客户端

用爬虫获取“python之禅”的文本

import lxml.html,requests
ur1='http://www.python.org/dev/peps/pep-0020/'
xpath='//*[@id="the-zen-of-python"]/pre/text()'
res=requests.get(ur1)
ht=lxml.html.fromstring(res.text)
text=ht.xpath(xpath)
print('Hello,\n'+''.join(text))

运行结果:
在这里插入图片描述
以上时“Python之禅的内容”,上述程序完成了一个网络爬虫最普遍的流程:1、访问站点;2、定位所需信息;3、得到并处理信息。

代码解析

import lxml.html,requests

上述代码导入了两个模块,分别是lxml库中的html以及python中著名的Requests库。lxml是用于解析XML和HTML的工具。

ur1='http://www.python.org/dev/peps/pep-0020/'
xpath='//*[@id="the-zen-of-python"]/pre/text()'

上述代码定义了两个变量,ur1和xpath会自动被识别为字符串类型。ur1是一个网页链接,可以直接在浏览器中打开,页面中包含“Python之禅”的文本信息。xpath变量则是一个XPath路径表达式。lxml库可以使用XPath来定位元素。

res=requests.get(ur1)

上述使用了Requests中的get()方法,对ur1发送了一个HTTP GET请求,返回值被赋值给res,于是便得到了一个名为res的Response对象,接下来就可以从这个Response对象获取需要的信息。

ht=lxml.html.fromstring(res.text)

lxml.html是lxml下的一个模块,顾名思义,主要负责处理HTML。fromstring方法传入的参数是res.text,即Response对象的text(文本)内容。fromstring()方法的docstring(文档字符串,即此方法的说明)中提到,这个方法可以“Parse the html,returning a single element/document.”,即fromstring()根据这段文本来构建一个lxml中的HtmlElement对象。

text=ht.xpath(xpath)
print('Hello,\n'+''.join(text))

这两行代码使用XPath来定位HtmlElement中的信息,并进行输出。text就是程序运行得到的结果,.join()是一个字符串方法,用于将序列中的元素以指定的字符串连接生成一个新的字符串。因为text是一个list对象,所以使用‘ ’这个空字符来连接。如果不进行这个操作而直接输出则会报错。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值