import urllib.request import urllib.parse import re def main(): start_page = int(input("输入查询的开始页:")) end_page = int(input("输入查询的结束页:")) url = 'http://www./z/nl/z2-r1.html?' # 循环生成页面 for page in range(start_page, end_page + 1): # 生成请求对象 request = get_request(url, page) # 通过请求对象获取响应的数据 get_response(request) # 获取请求的对象 def get_request(url, page): # 以字典的形式存储数据 data = { 'p': page } # 对get请求的数据 data = urllib.parse.urlencode(data) # 拼接url url += data # 获取请求对象 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' } request = urllib.request.Request(url=url, headers=headers) return request def get_response(request): # 通过请求对象获取响应的数据 response = urllib.request.urlopen(request) html = response.read().decode("utf8") # print(html) # 通过正则表达求出数据 pattern = re.compile(r'<div class="txt">.*?<a .*? class="t1">(.*?)</a>.*?<a .*? href="(.*?)">(.*?)</a>.*?</div>',re.S) # 获取所有的信息,返回的是一个列表,列表里面套着元组 result = pattern.findall(html) print(result) if __name__ == '__main__': main()
|
|