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

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

抽屉网的规则问题

示例如下:

 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

时间: 2024-08-24 23:16:29

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

抽屉新热榜

1.实现与抽屉新热榜一样的布局 2.允许点赞.评论 3.开发登录.注册页面 4.开发发贴功能 index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <!-- 以最高的ie 浏览器 渲染 --> <meta http-equiv="X-UA-Compatible" content="

【IOS】模仿&quot;抽屉新热榜&quot;动态启动页YFSplashScreen

IOS最好要设置系统默认启动页面,不然进入应用就会突然闪现黑色画面 下图是我们要实现的效果: 总体思路:设置一个系统默认启动页面,在进入didFinishLaunchingWithOptions时, 给Window添加自定义启动页,其初始画面和系统启动页一样. 可在自定义启动页实现一些动画,动画结束后,将自定义启动页移除. 一.设置系统默认启动页 现在,新建项目会自动生成LaunchScreen.storyboard启动页面文件. 来到项目根目录  点击General  找到以下: 发现除了直接

抽屉新热榜页面之html

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>抽屉新热榜-聚合每日热门.搞笑.有趣资讯</title> <link rel="stylesheet" href="css/indextwo.css"> </head> <body>

python爬虫实践——自动登录抽屉新热榜

1 from selenium import webdriver 2 import time 3 4 driver = webdriver.Chrome(r'D:\BaiduNetdiskDownload\chromedriver_win32\chromedriver.exe') 5 6 # 把窗口转成全屏 7 driver.maximize_window() 8 9 try: 10 driver.get('https://dig.chouti.com/') 11 driver.implicit

抽屉新热榜之css

*{ margin: 0; padding: 0; /*background-color: whitesmoke;*/ } .bottom{ height: 44px; background-color: #2459a2; /*line-height: 44px;*/ /*text-align: center;*/ } .centor{ /*background-color: #00A000;*/ /*background-color: #2459a2;*/ background-color:

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

response.cookies 是对象 再get_dict() 返回的是字典 访问上一次登录状态要有cookie get和post都有cookies import requests post_dict = { "phone": '8615131255089', 'password': 'woshiniba', 'oneMonth': 1 } response = requests.post( url="http://dig.chouti.com/login", d

爬虫学习之-操作mysql

在操作数据库的时候,python2中一般使用mysqldb,但在python3中已经不在支持mysqldb了,我们可以用pymysql和mysql.connector.本文的所有操作都是在python3的pymysql下完成的. 一.基本操作 (1) 查询 import pymysql conn = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='test') cur = conn.cursor() # 查询 s

python爬虫之基础学习(一)

python爬虫之基础学习(一) 网络爬虫 网络爬虫也叫网络蜘蛛.网络机器人.如今属于数据的时代,信息采集变得尤为重要,可以想象单单依靠人力去采集,是一件无比艰辛和困难的事情.网络爬虫的产生就是代替人力在互联网中自动进行信息采集和整理. 网络爬虫的组成 网络爬虫由控制节点.爬虫节点以及资源库构成,简单而言就是控制节点控制爬虫节点爬取和处理网页存储到资源库中.网络爬虫中有多个控制节点和爬虫节点,一个控制节点控制着多个爬虫节点,同一个控制节点下的多个爬虫节点可以相互通信,多个控制节点也可以相互通信.

Docker 学习笔记【2】 Docker 基础操作实,Docker仓库、数据卷,网络基础学习

Docker 学习笔记[3] Docker 仓库实操,创建私有仓库,实操数据卷.数据卷容器,实操 网络基础  ---------高级网络配置和部分实战案例学习 ============================================================= Docker 学习笔记[1]Docker 相关概念,基本操作--------实操记录开始 ============================================================= 被