模拟登陆豆瓣,发帖和回复code
来源:互联网 发布:搞笑视频软件下载 编辑:程序博客网 时间:2024/05/22 17:39
from bs4 import BeautifulSoup
import requests
from html.parser import HTMLParser
from PIL import Image
#模拟登陆豆瓣
class MomNi():
#初始化
def init(self):
self.header = {
‘User-Agent’:’Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36’
}
self.session = requests.session()
#seession方法
#登录codedef longin(self,form_email,form_password,): login_url = 'https://accounts.douban.com/login' #登录url response = self.session.get(login_url) #get获取网址信息 (captch_id,captch_url) = _get_captcha(response.content.decode('utf-8')) # 传入验证码的图片和标签 print(captch_id) if captch_id: r = self.session.get(captch_url) with open('captcha.jpg','wb') as f: f.write(r.content) #如果ID 存在获取图片链接并写入 try: img = Image.open('captch.jpg',mode="r") img.show() img.close() except: print('请输入验证码') captcha_solution = input('please input solution for captcha[{}:'.format(captch_url)) #输入验证码 #没有验证码的参数 data = { 'form_email':form_email, 'form_password':form_password, 'source': 'index_nav', 'user_login': '登录', 'redir':'https: // www.douban.com /' } #验证码参数 } if captch_id: data['captcha-id'] = captch_id data['captcha-solution'] = captcha_solution self.session.post(login_url,data=data,headers=self.header) # print(self.session.get('https://www.douban.com').content.decode('utf-8')) 登陆后内容#发帖def get_content(self,comment,ck = '6_29',): data = { 'ck' : ck, 'comment':comment } self.session.post('https://www.douban.com/',data=data,headers=self.header)
#定义_attr方法,解析式调用
def _attr(attrs,attrname): for attr in attrs: if attr[0] == attrname: return attr[1] return None
def _get_captcha(content): # 继承HTMLParser解析方法 class Captchaparser(HTMLParser): def __init__(self): HTMLParser.__init__(self) self.captch_id = None self.captch_url = None #使用HTMLparser解析标签和属性 def handle_starttag(self, tag, attrs): #验证码图片 if tag == 'img' and _attr(attrs, 'id') == 'captcha_image' and _attr(attrs, 'class') == 'captcha_image': self.captch_url = _attr(attrs,'src') #验证码输入框 if tag == 'input' and _attr(attrs, 'type') == 'hidden' and _attr(attrs,'name') == 'captcha-id': self.captch_id = _attr(attrs,'value') p = Captchaparser() # 实例化这个类 p.feed(content) # 传入要解析的文本 return p.captch_id,p.captch_url #将匹配到的数据返回
if __name__ == '__main__': form_email = input('plase your email:') form_password = input('plase your password:') #输入用户名密码 Run = MomNi() #调用方法 Run.longin(form_email,form_password) #传入用户名和方法 comment = input('plase input comment:') #发帖 Run.get_content(comment) #调用发帖函数
code中没有回复发帖函数。
是因为在回复已发帖内容时,每个内容的代码ID都是唯一的。 不同发帖内容的ID各不相同。
阅读全文
0 0
- 模拟登陆豆瓣,发帖和回复code
- python 模拟登陆豆瓣
- 豆瓣模拟登陆
- CURL模拟登陆并发帖
- python模拟登陆豆瓣网和验证码识别
- Python爬虫模拟登陆豆瓣
- Discuz X3 CURL 模拟登陆发帖
- 豆瓣机器人 自动加入/退出小组、自动在小组发帖/删帖、自动回复 Python实现代码
- 豆瓣学习 --模拟http 操作 登陆等
- python3 爬虫 模拟登陆豆瓣修改签名
- Python爬虫笔记-豆瓣模拟登陆
- ASP 限制发帖时间 和 登陆限制
- 无法发帖或者回复? 点这里参看如何发帖和回帖
- scrapy框架半自动处理验证码豆瓣网模拟登陆
- 数据采集(五):用requests模拟登陆豆瓣
- 模拟登陆豆瓣获取cookie入mongo库!
- 使用OpenAPI发帖和自我回复并结贴的功能
- 简单BBS的实现发帖与回复
- Python学习(5)
- 技术路线的核心竞争力
- 重复值判断
- 递增数列最长(dp)
- spring boot之集成页面
- 模拟登陆豆瓣,发帖和回复code
- 使用Filter处理web中的表单提交过程中的中文问题
- Java 线程 50个Java多线程面试题
- FCC----------- Binary Agents
- pyCharm第三方库安装
- json与bean,beanlist互转
- android和js交互数据格式
- HDU3849[By Recognizing These Guys, We Find Social Networks Useful ] tarjan求无向图的桥
- noip2015跳石头