爬虫学习---基础操作--抽屉新热榜自动点赞与豆瓣自动统一短评

Posted 莫柔落切

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫学习---基础操作--抽屉新热榜自动点赞与豆瓣自动统一短评相关的知识,希望对你有一定的参考价值。

爬虫的学习相对来说,比较烦锁,因为网站的反爬规则,经过两天的研究,终于搞定了抽屉新热榜自动点赞与豆瓣自动统一短评(豆瓣登录的验证码目前需要手动输入)

 

抽屉网的规则问题

示例如下:

 1 import requests,re
 2 from bs4 import BeautifulSoup
 3 headers={User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0
 4 }
 5 user=你的帐号
 6 pwd=你的密码
 7 def index_first():#抽屉网需要GET的COOKIES
 8     r1=requests.get(https://dig.chouti.com/,headers=headers)
 9     return r1.cookies.get_dict()
10 def login(cookies,user,pwd):
11     post_dict={ #登陆时要提交的数据
12         phone:user,
13         password:pwd,
14         oneMonth:1
15     }
16     response = requests.post(#要登陆的网址
17          url="https://dig.chouti.com/login",
18          data=post_dict,
19         cookies=cookies,#带上cookies进行授权
20         headers=headers
21      )
22     print(response.text,url)
23     return
24 
25 def profiles(cookie_gpsd):#进入个人主页
26     response=requests.get(
27         url=https://dig.chouti.com/profile/bind,
28         cookies=cookie_gpsd,
29         headers=headers
30     )
31     soup =BeautifulSoup(response.text,features=html.parser)#python 内置转换的对象
32     phone=soup.find(id=bind-content)
33     #phone_nube=phone.find(‘class‘)
34     reg=r<div class="show-phoneCode">当前绑定号码为:(.*?)</div>
35     rest=re.findall(reg,response.text)#查找
36     print(‘‘,rest)
37     if rest[0]==+你的手机号:
38         print(进入个人设置成功)
39 
40 def dz(cookies_dict):
41     ret=requests.post(url=https://dig.chouti.com/link/vote?linksId=18760066,#要点赞的文章地址
42                   cookies=cookies_dict,
43                   headers=headers)
44     print(ret.text)
45 
46 
47 cookie_get=index_first()#先取得GET的cookies
48 login(cookie_get,user,pwd)#登陆进行cookies的授权
49 profiles(cookie_get)#可以进行后台
50 dz(cookie_get)#点赞

豆瓣网

 1 import requests
 2 import re
 3 import json
 4 from bs4 import BeautifulSoup
 5 
 6 requests =requests.Session()#记录登录的状态
 7 if __name__ == __main__:
 8     user=你的帐号
 9     pwd=你的密码
10     #请求头
11     headers={User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0
12     }
13 
14     def login():
15         response=requests.get(https://accounts.douban.com/login,headers=headers)
16         response.encoding=response.apparent_encoding  #返回网页的原先编码
17         result=response.text#取出文本即网页源码
18         reg=r<input type="hidden" name="captcha-id" value="(.*?)"/>#正则表达式
19         catpchaId=re.findall(reg,result)#查找 验证码对象ID
20         soup =BeautifulSoup(result,features=html.parser)#python 内置转换的对象
21         target=soup.find(id=captcha_image)#查找 验证码对象
22         img_url =target.attrs.get(src)#获取验证码图片URL
23         print(img_url,catpchaId)
24         response=requests.get(img_url,headers=headers)#获取验证码图片
25         codeimg=response.content#保存为二进制
26         print(codeimg,codeimg)
27         with open(code.png,wb) as f:#保存为PNG图片
28             f.write(codeimg)
29         post_dict={ #登陆时要提交的数据
30             source:index_nav,
31             form_email:user,#用户名
32             form_password:pwd,#密码
33             captcha-solution:input(请输入验证码:),#输入你保存的PNG图片中的验证码
34              captcha-id:catpchaId
35         }
36         response = requests.post(#要登陆的网址
37              url="https://accounts.douban.com/login",
38              data=post_dict,
39             headers=headers
40          )
41         print(response.url,url)
42         # #print(response.text,‘text‘)
43         # cookie_dict=response.cookies.get_dict()#产生的cookie
44         # print(cookie_dict,‘cookie_dict‘)
45         if 莫柔落切的帐号 in response.text:
46             print(登录成功)
47         else:
48             print(登录失败,重新登录!)
49             login()
50             return
51     def comment(mid):#评论
52         data={#评论的表单数据格式
53             ck:xVds,
54             comment:我来留个名,
55             foldcollect:F,
56             interest:collect,
57             rating:‘‘,
58             tags:123
59         }
60         #进行提交
61         response=requests.post(https://movie.douban.com/j/subject/%s/interest%mid,data=data,headers=headers)
62         print(response.text,comment.text)
63     def getMoveId():#电影的ID  排行榜
64         response=requests.get(https://movie.douban.com/ithil_j/activity/movie_annual2017/widget/20,
65                                 headers=headers)
66         print(response.text)
67         result=response.json()#进行转换为文本
68 
69         print(type(result),类型)
70         return  result[res][subjects]#返回所要的数据
71 
72     login()
73     for i in getMoveId():#循环电影ID列表
74         print(i)
75         comment(i[id])#进行短评

 

以上是关于爬虫学习---基础操作--抽屉新热榜自动点赞与豆瓣自动统一短评的主要内容,如果未能解决你的问题,请参考以下文章

抽屉新热榜

示例:自动登录抽屉新热榜

IOS模仿"抽屉新热榜"动态启动页YFSplashScreen

抽屉新热榜头部实现

抽屉之Tornado实战--点赞与评论树

发送邮箱短信微信等