爬取自己的QQ空间
import urllib.parse
import urllib.request
from http import cookiejar
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
#通过cookieJar()类构建一个cookieJar()对象,用来保存cookie的值
cookie = cookiejar.CookieJar()
#通过HTTPCookieProcessor()处理器类构建一个处理器对象,用来处理cookie
#参数就是构建的CookieJar()对象
cookie_handler = urllib.request.HTTPCookieProcessor(cookie)
#构建一个自定义的opener
opener = urllib.request.build_opener(cookie_handler)
#通过自定义opener的addheaders的参数,可以添加HTTP报头参数
opener.addhandlers = [("User-Agent", "Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50")]
#人人网的登陆接口
url = "https://user.qzone.qq.com/"
#需要登陆的账户密码
data = {"email" : "562352353@qq.com", "password":"chen562352353"}
#通过URL encode()编码转换
data =urllib.parse.urlencode(data).encode("gbk")
request = urllib.request.Request(url,data=data)
response = opener.open(request)
print(response.read().decode("utf-8"))
爬取别人的QQ空间
import urllib.parse import urllib.request from http import cookiejar import ssl ssl._create_default_https_context = ssl._create_unverified_context #通过cookieJar()类构建一个cookieJar()对象,用来保存cookie的值 cookie = cookiejar.CookieJar() #通过HTTPCookieProcessor()处理器类构建一个处理器对象,用来处理cookie #参数就是构建的CookieJar()对象 cookie_handler = urllib.request.HTTPCookieProcessor(cookie) #构建一个自定义的opener opener = urllib.request.build_opener(cookie_handler) #通过自定义opener的addheaders的参数,可以添加HTTP报头参数 opener.addhandlers = [("User-Agent", "Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50")] #人人网的登陆接口 url = "https://user.qzone.qq.com/" #需要登陆的账户密码 data = {"email" : "562352353@qq.com", "password":"chen562352353"} #通过URL encode()编码转换 data =urllib.parse.urlencode(data).encode("gbk") #第一次是post请求,发送登陆需要的参数,获取cookie request = urllib.request.Request(url,data=data) #发送第一次的post请求,生成登陆后的cookie(如果登陆成功的话) response = opener.open(request) #print(response.read().decode("utf-8")) #第二次可以是get请求,这个请求将保存生成cookie一并发到web服务器,服务器会验证cookie通过 response_haoyou = opener.open("https://user.qzone.qq.com/156994867") #获取登陆后才能访问的页面信息 print(response_haoyou.read().decode("utf-8"))