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。文章正文部分与标题相关,并且出现了相关的代码和用法例子。