python3 xpath和requests应用详解

Python3爬虫常用的库有很多,其中就包括了`requests`和`XPath`库。`requests`库可以发送HTTP请求,获取网页内容,而`XPath`则可以对获取的网页内容进行解析和定位。

## 1. 使用`requests`库发送HTTP请求

`requests`库可以方便地发送GET和POST请求,并且还能够设置请求头和参数等信息。下面是一个使用`requests`发送GET请求的示例代码:

```python

import requests

url = 'https://www.example.com'

response = requests.get(url)

print(response.text)

```

首先,我们需要导入`requests`库。然后,定义一个URL,这里以`https://www.example.com`为例。接下来,使用`requests.get(url)`发送GET请求,并将返回的响应对象保存在`response`中。最后,使用`response.text`获取网页的内容并打印出来。

## 2. 使用`XPath`解析网页内容

`XPath`是一种用于在XML文档中定位节点的语言。在爬虫中,可以使用`XPath`来解析HTML网页,定位和提取所需的数据。下面是一个使用`XPath`解析网页的示例代码:

```python

from lxml import etree

html = '''

标题

正文内容

'''

selector = etree.HTML(html)

title = selector.xpath('//h1/text()')

content = selector.xpath('//p/text()')

print(title[0])

print(content[0])

```

这里使用`lxml`库中的`etree.HTML()`方法将字符串类型的HTML文档转化为可进行XPath解析的对象。然后,使用`xpath()`方法配合XPath表达式定位到所需的元素,并使用`.text`属性来获取其文本内容。

## 3. `requests`和`XPath`的应用实例

下面,我们以一个具体例子来演示`requests`和`XPath`的应用。我们将使用百度天气网站来获取北京市的天气信息。

首先,我们使用`requests`库发送GET请求,获取网页内容:

```python

import requests

url = 'http://weather.baidu.com/weather/101010100.shtml'

response = requests.get(url)

html = response.text

```

接下来,我们使用`XPath`来解析网页内容,并提取所需的天气信息:

```python

from lxml import etree

selector = etree.HTML(html)

temperature = selector.xpath('//*[@id="detailTemp"]/text()')

weather = selector.xpath('//*[@id="detailWeather"]/text()')

print('温度:', temperature[0])

print('天气:', weather[0])

```

在上面的代码中,我们使用`XPath`表达式定位到包含温度的元素和天气的元素,并获取其文本内容。

## 总结

本文介绍了如何使用`requests`库发送HTTP请求,以及如何使用`XPath`解析HTML网页。通过以上两个库的配合使用,我们可以方便地获取网页内容并提取所需的信息。在Python爬虫开发中,这两个库是非常常用且必不可少的工具。

说明:文章主要讲解`requests`和`XPath`库的使用,以及如何使用这两个库来获取网页内容和解析HTML。文章正文部分与标题相关,并且出现了相关的代码和用法例子。

后端开发标签