在Python中,urllib
库提供了一系列用于处理URL的功能。以下是使用urllib
库进行网络爬虫开发的一些进阶用法:
- 使用
urllib.request
发送GET请求:
import urllib.request
response = urllib.request.urlopen('http://www.example.com')
html = response.read()
print(html)
- 使用
urllib.request
发送POST请求:
import urllib.request
import urllib.parse
data = urllib.parse.urlencode({'key': 'value'})
data = data.encode('utf-8') # 将数据转换为bytes类型
response = urllib.request.urlopen('http://www.example.com/postonly', data=data)
html = response.read()
print(html)
- 使用
urllib.request
添加HTTP头信息:
import urllib.request
request = urllib.request.Request('http://www.example.com')
request.add_header('User-Agent', 'My User Agent 1.0')
response = urllib.request.urlopen(request)
html = response.read()
print(html)
- 使用
urllib.error
处理请求错误:
import urllib.request
import urllib.error
try:
response = urllib.request.urlopen('http://www.example.com')
except urllib.error.URLError as e:
print(e.reason)
else:
html = response.read()
print(html)
- 使用
urllib.request.ProxyHandler
设置代理:
import urllib.request
proxy_handler = urllib.request.ProxyHandler({'http': 'http://127.0.0.1:8080'})
opener = urllib.request.build_opener(proxy_handler)
response = opener.open('http://www.example.com')
html = response.read()
print(html)
这些例子展示了如何使用urllib
库的基本功能进行网络爬虫开发。对于更复杂的需求,可能需要结合BeautifulSoup
、lxml
、Scrapy
等库一起使用。