问题描述: 想利用 Cookie 来进行模拟访问(像知乎,百度贴吧,不需要 Cookie也可以访问),虽然只需要加一个参数就可以,但是自己还是实操一下,毕竟自己就只会写这种小东西,哈哈
# -*- coding=utf-8 -*-
import urllib.request
"""
模拟访问一下百度贴吧
"""
class BaiduBlog(object):
def __init__(self, keyword): # 字符串拼接:
self.url = keyword
# self.keyword = keyword
# self.base_url = "https://tieba.baidu.com/f?kw="
# self.url_suffix = "&ie=utf-8&pn=50" # 都是第二页的数据
# self.url = self.base_url + self.keyword + self.url_suffix
def visit_url(self):
user_header = {
"content-encoding": "gzip",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36",
"cookie": "把你自己QQ空间里面的Cookie放这里"
}
print("开始访问网站:" + self.url)
req = urllib.request.Request(user_url, headers=user_header)
rep = urllib.request.urlopen(req) # 不知道为什么,如果不用user_header , Cookie, 它会自动变成 i.qq.com 这个域名
print(rep.getcode())
print(rep.read().decode("UTF-8"))
"""
https://tieba.baidu.com/f?kw=最终幻想&ie=utf-8&pn=100 【 中间的最终幻想会变成: %E6%9C%80%E7%BB%88%E5%B9%BB%E6%83%B3 】
每页是 50 条数据, pn=100 表示 第 3 页
"""
if __name__ == '__main__':
# keyword = "最终幻想"
# keyword = urllib.parse.quote(keyword)
# print(keyword)
# try_visit = BaiduBlog(keyword)
# try_visit.show()
user_url = "你自己QQ空间的URL"
visit_qq_space = BaiduBlog(user_url)
visit_qq_space.visit_url()
问题关键,只要加一步: urlilib.request.Request(url, header) 即可
问题解决: 如上代码。