import urllib.request
import urllib.parse
import re
def main():
start_page = int(input("输入查询的开始页:"))
end_page = int(input("输入查询的结束页:"))
url = 'http://www.ziroom.com/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()
网友评论