Python中使用HTTPServer()实现简单的网页爬虫
发布时间:2023-12-26 14:45:50
在Python中,可以使用http.server.HTTPServer类实现简单的网页爬虫。HTTPServer是Python内置的HTTP服务器类,可以用于搭建一个基本的Web服务器。
以下是一个使用HTTPServer实现简单网页爬虫的例子:
from http.server import HTTPServer, BaseHTTPRequestHandler
import urllib.request
class RequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
# 模拟浏览器发送GET请求
url = "http://example.com" # 将要爬取的网页URL
req = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0'})
response = urllib.request.urlopen(req)
# 获取网页内容
html = response.read()
# 设置响应头
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
# 返回网页内容给客户端
self.wfile.write(html)
def run():
# 设置服务器地址和端口号
server_address = ('', 8000)
httpd = HTTPServer(server_address, RequestHandler)
print('Starting server...')
httpd.serve_forever()
if __name__ == '__main__':
run()
在上述例子中,首先我们导入了HTTPServer和BaseHTTPRequestHandler类,并引入了urllib.request模块用于发送HTTP请求和获取网页内容。
然后,我们定义了一个名为RequestHandler的类,该类继承自BaseHTTPRequestHandler类,并重写了do_GET方法。do_GET方法会在收到GET请求时被调用。在这个方法中,我们使用urllib.request模块发送了一个GET请求,并读取了网页的内容。然后,我们设置了响应头并将网页内容返回给客户端。
最后,我们定义了一个run函数,用于启动服务器。我们创建了一个HTTPServer实例,并指定服务器的地址和端口号。然后,我们调用serve_forever方法来启动服务器,并将其保持运行状态。
要运行这个程序,在命令行中执行python文件名.py命令。接着,打开浏览器访问http://localhost:8000,你将会看到请求的网页内容显示在浏览器中。
值得注意的是,在实际编写网页爬虫时,我们还需要做一些其他操作,例如解析HTML内容、保存数据等。以上的例子只是一个简单的示例,展示了如何使用HTTPServer来实现一个简单的网页爬虫。
