python实例-通过cookie实现登录csdn获取自己微博的文章列表
2017-07-04 11:46
1026 查看
在使用python做爬虫的时候,大部分情况都会遇到登录问题,这就涉及到python的cookie的用法。这里参照网上的一些资料实现了获取csdn自己微博的列表
功能目标:获取csdn我的微博入口,查看个人的微博列表
思路:1、首先分析csdn登录需要哪些参数
2、根据需要的参数生产data进行登录,保存cookie信息
3、分析我的微博的路径进行后续访问,通过BeautifulSoup筛选需要的文章列表
查看csdn登录的from表单
password 和username 自己填写,lt和execution分析需要动态获取,_eventId这个是固定字符串
所以先要请求获取动态lt和execution
成功登录之后查看我的博客链接write.blog.csdn.net
访问之后发现内容不对
原来onload重定向了,所以还要动态获取redirect 作为新的url链接
之后就通过select标签的形式筛选出我需要的博客列表
功能目标:获取csdn我的微博入口,查看个人的微博列表
思路:1、首先分析csdn登录需要哪些参数
2、根据需要的参数生产data进行登录,保存cookie信息
3、分析我的微博的路径进行后续访问,通过BeautifulSoup筛选需要的文章列表
查看csdn登录的from表单
password 和username 自己填写,lt和execution分析需要动态获取,_eventId这个是固定字符串
所以先要请求获取动态lt和execution
#coding:utf-8 import urllib.parse, urllib.request, http.cookiejar, re from bs4 import BeautifulSoup def text_create(name, msg):#保存文件,传入文件名与内容 desktop_path = '/Users/wuhao/Desktop/python/' full_path = desktop_path + name + '.txt' file = open(full_path,'w') file.write(msg) file.close() print('Done :',name) cookie=http.cookiejar.CookieJar() cookieProc =urllib.request.HTTPCookieProcessor(cookie) opener =urllib.request.build_opener(cookieProc) h=opener.open('https://passport.csdn.net/account/login').read().decode("utf-8") patten1 = re.compile(r'name="lt" value="(.*?)"') patten2 = re.compile(r'name="execution" value="(.*?)"') #获取csdn登录需要的前置参数 it\execution lt=patten1.search(h).group(1) execution=patten2.search(h).group(1) postData = { 'username':'150***@163.com', 'password':'***', 'lt':lt, 'execution':execution, '_eventId':'submit' } postData= urllib.parse.urlencode(postData).encode(encoding='UTF8') opener.addheaders = [('Origin', 'https://passport.csdn.net'), ('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'), ('Referer', 'https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn') ] response = opener.open('https://passport.csdn.net', data=postData) text = response.read().decode("UTF8") text_create('csdn_login.html',text) response2 = opener.open('http://blog.csdn.net') #获取我的CSDN主页 text2 = response2.read().decode('utf-8', 'ignore') text_create('csdn_mycsdn.html',text2) response3 = opener.open('http://write.blog.csdn.net').read().decode("utf-8") #获取我的微博主页 patten3 = re.compile(r'var redirect = "(.*?)"') blogurl = patten3.search(response3).group(1) response = opener.open(blogurl) text4 = response.read().decode("utf-8") text_create('blog_list.html',text4) soup = BeautifulSoup(text4, 'html.parser') #data=soup.select("tr td a[target=\"_blank\"]") data=soup.select("tr td[class=\"tdleft\"] a")#获取a链接target=_blank的微博列表 print(len(data)) for html_tag in data: print("title : "+html_tag.string)
成功登录之后查看我的博客链接write.blog.csdn.net
访问之后发现内容不对
原来onload重定向了,所以还要动态获取redirect 作为新的url链接
之后就通过select标签的形式筛选出我需要的博客列表
相关文章推荐
- Python登录并获取CSDN博客所有文章列表代码实例
- Python3.X登录模拟CSDN,获取文章列表
- Python登录并获取CSDN博客所有文章列表
- Python实现抓取CSDN博客首页文章列表
- python模拟登录csdn并获取首页文章写入MySQL中(二)
- python3 模拟实现登录HDU并获取Cookie
- python通过本地保存的cookie文件实现登录并访问相关网页
- Python实现抓取CSDN热门文章列表
- python实现QQ机器人(自己主动登录,获取群消息,发送群消息)
- python实例编写(4)--js,滚动条,cookie,验证码,获取特定属性的元素,实现原理
- Python实现抓取CSDN博客首页文章列表
- python 模拟登录csdn并获取博客列表等操作
- Python实现抓取CSDN热门文章列表
- python+cookielib实现批量利用账号和密码自动获取新浪微博登录cookie
- Python:获取新浪微博用户的收听列表和粉丝列表
- python cookielib 登录人人网的实现代码
- CSDN博客专栏文章批量下载脚本[python实现]
- python cookielib 登录人人网的实现代码
- 通过WinInet API来实现表单提交并设置获取COOKIE
- 求助:php通过新浪微博接口 api 如果获取某一地区下所有用户的微博列表?或使用包含某一关键词的微博列表