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

抽屉网的规则问题

示例如下:

 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'])#进行短评

转载于:https://www.cnblogs.com/uge3/p/8809044.html

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

  1. Python爬虫学习基础——5分钟学会爬取B站视频日播放量排行

    Python爬虫学习基础--5分钟学会爬取B站视频日播放量排行 基础包含 requests pyquery 进入正题 基础包含 这也是我当初第一次学习爬虫时做的练习,感觉给初学者练笔挺不错的.运用的知 ...

  2. Socket编程学习-基础操作

    Socket编程学习-基础操作 socket的基本操作 可参考,https://blog.csdn.net/sinat_36645384/article/details/79128137 核心问题1- ...

  3. 基于python win32com的visio文件基础操作语句简介及案例展示(家族树自动创建)

    1 写在前面 最近需要给老师们做家族树,向visio模板中套excel数据,但是在手动套模板的过程中发现间距的控制是一个较为繁琐的事情,于是萌生了用python完成这一过程的想法. 在探索的过程中经验 ...

  4. 水箱建模最小二乘法_lammps软件学习基础操作建模

    内部建模,即使用LAMMPS提供的命令建立模型.这种方法主要用于构建比较简单和标准的体系. 相关命令主要有4个: lattice:定义晶格类型: region:定义模拟盒子的大小: create_bo ...

  5. python爬虫学习基础教程,批量抓取美女图片!

    python的抓取功能其实是非常强大的,当然不能浪费,呵呵.下面就与大家分享一个python写的美女图自动抓取程序吧! 其中用到urllib2模块和正则表达式模块.下面直接上代码: 用python批量 ...

  6. python数据分析pandas_Python数据分析之pandas学习(基础操作)

    一.pandas数据结构介绍 在pandas中有两类非常重要的数据结构,即序列Series和数据框DataFrame.Series类似于numpy中的一维数组, 除了通吃一维数组可用的函数或方法,而且 ...

  7. 全网首发 自媒体人的秘密武器——即时热榜上线

    在自媒体行业高温不减的当下,热点就是流量.效率就是金钱,如果你真的想要做好自媒体,那么,即时热榜--这个追热点的绝密武器,你必须要知道. 第一,聚合100+平台.1000+热门榜单 作为一个聚合类资讯 ...

  8. NLP 实战 (7) | 热榜算法更新

    更新日志 2022/09/15 热榜 v3.7.3.8 上线: 增加文章因为分享带来的站外访客因子: 加入新增的前沿技术相关标签,并设置权重. 贡献者:@卢昕 2022/09/08 热榜 v3.7.3 ...

  9. 太好玩了,爬虫、部署API、加小程序,一条龙玩转知乎热榜!

    作者 | 周萝卜 来源 | 萝卜大杂烩 一直想做一个从爬虫到数据处理,到API部署,再到小程序展示的一条龙项目,最近抽了些时间,实现了一个关于知乎热榜的,今天就来分享一下! 数据爬取 首先我们看下需要 ...

  10. 用PyTorch实现的李沐《动手学深度学习》,登上GitHub热榜,获得700+星

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 李沐老师的<动手学深度学习>是一本入门深度学习的优秀教材,也是各大在线书店的计算机类畅销书. 作为MXNet的作者之一,李沐老 ...

最新文章

  1. Git复习(五)之多人协作、git push失败、git pull失败
  2. 直播 | 华为云卢栋才:对话机器人的应用实践和最新进展
  3. ava返回json格式的状态码数据(一)
  4. SAP UI5 Mock server,为什么运行时无法返回 JSON 类型的测试数据?
  5. java mysql 数据库
  6. 【qt】QT 的信号与槽机制
  7. oracle中DECODE与CASE的用法区别
  8. java图形用户登录界面_Java简单登录图形界面
  9. 关于推荐的一个算法工程师访谈,有一些内容值得看看
  10. JavaScriptCore全面解析
  11. python类的初始化方法___python类的初始化方法
  12. Mac远程服务器文件上传rz和sz的安装使用
  13. Windows下Github使用方法
  14. signature=d66576fde8d472a0c1dddd8b37be6b72,Signature process
  15. XnConvert for Mac(批量图像格式转换软件)
  16. maven本地仓库地址更改
  17. 计算机网络技术实训课程报告,大学网络技术基础课程的实训报告怎么写?
  18. 程序员有话说 | 我成了敲代码的“佛教徒”
  19. KKB:二进制知识:15瓶水,其中只有一瓶水有毒,请问至少需要几只小白鼠可以一次性喝出来?
  20. html多个背景音乐自动播放,多个背景音乐同时自动播放?

热门文章

  1. Unity 增加2D游戏的打击感笔记
  2. web安全主要包括哪些方面的安全
  3. Android DRM
  4. 计算机6005是开机时间,怎么查电脑的开机,和关机时间·,同学们
  5. 31.Silverlight中WebClient+StreamResourceInfo+反射实现动态加载外部XAP程序
  6. SG Input 软件安全分析之逆向分析
  7. prophet Seasonality, Holiday Effects, And Regressors季节性,假日效应和回归
  8. 计算机分析桁架受力,日光温室桁架式拱架的受力分析.doc
  9. Mac技巧之 Numbers 排除重复表格(去重)方法
  10. Eureka的自我保护机制