pythonurllib的使用_python re和urllib的使用问题。
模拟登陆豆瓣的程序。
#-*- coding:utf-8-*-
import urllib
import urllib2
import re
import cookielib
import sys
reload (sys)
sys.setdefaultencoding("utf-8")
username = ''
password = ''
cookie = cookielib.CookieJar()
handler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(handler)
url = 'http://www.douban.com/'
req = urllib2.Request(url)
res = urllib2.urlopen(req)
loginurl = 'https://accounts.douban.com/login'
headers = {"User-Agent":'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36'}
data = {
"ck":'93rI',
"source":'None',
"redir":'http://www.douban.com',
"form_email":'username',
"form_password":'password',
"remember":'on'
"login":'登陆'
}
dt = urllib.urlencode(data)
request = urllib2.Request(loginurl,dt,headers)
response = opener.open(request)
page = response.read()
print page
data里面那个中文 “登陆” 我怎么表示。这个程序运行之后显示的是 登陆那个地方无效的语法。
2.在正则中如果我要匹配中文要怎么匹配,把中文转换成utf-8码?中文和这个怎么转换。
3.chrome 开发者工具的问题,我登陆豆瓣的时候能够看到
URL和post表单,但是登陆直呼的时候却找不到,准确来说我就是没在name里找到login这个所以自然找不到post表单。我用火狐可以找到。
再来一个吧,这个是登陆知乎的程序。都大同小异,别人给我改过一次。我自己写的结果是验证码写不要出来。改完之后i是这样的:
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
import urllib
import urllib2
import cookielib
import re
#设置账号(Email类型)
username = ''
password = ''
#Cookie
cookie = cookielib.CookieJar()
cookie_handler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(cookie_handler)
urllib2.install_opener(opener)
#请求首页
url = 'http://www.zhihu.com/'
request = urllib2.Request(url)
res = urllib2.urlopen(request)
contents = res.read().decode('utf-8')
#得到 token
pattern = re.compile(r'',re.S)
result = re.findall(pattern,contents)
xsrf = result[0]
#请求验证码
Captcha_URL= 'http://www.zhihu.com/captcha.gif?r=11111111'
r = urllib2.urlopen(urllib2.Request(Captcha_URL))
#写入文件
with open('code.gif','wb') as f:
f.write(r.read())
#输入 4位的 验证码
captcha =raw_input('captcha: ')
#构造登陆时的数据
lgurl = 'http://www.zhihu.com/login/email'
hdr = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; rv:43.0) Gecko/20100101 Firefox/43.0'}
post_data = {
'_xsrf':xsrf,
'email':username,
'password':password,
'rememberme':'true',
'captcha':captcha
}
#提交登陆
dt = urllib.urlencode(post_data)
req = urllib2.Request(lgurl, dt, hdr)
response = opener.open(req)
page = response.read()
print page
这个代码,有两个不明白的地方一个是获取验证之后那三行
r = urllib2.urlopen(urllib2.Request(Captcha_URL))
写入文件
with open('code.gif','wb') as f:
f.write(r.read())
为什么要打开这个r 还有为什么要写入文件。
其次是,运行之后要输入验证码,我就点开验证码的url每次输入之后显示的结果还是验证码错误。
请大家赐教。感激不尽。把这几个程序弄完之后就开始学习requests和beautiful soup了。还有那些常用的库要学习还请大家跟我说一下。如果大家有好的资源能分享一下就更好了。真的非常谢谢!
pythonurllib的使用_python re和urllib的使用问题。相关推荐
- pythonurllib模块-Python3中核心模块urllib的用法大全
Python的urllib模块提供了一个高级的Web通信库,支持基本的协议,如HTTP.FTP和Gopher,同时也支持对本地文件的访问.在Python3中,urllib.urlparse.urlli ...
- pythonurllib模块-Python3学习笔记(urllib模块的使用)
1.urllib urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=Fa ...
- python urlretrieve 管道_Python基础之 urllib模块urlopen()与urlretrieve()的使用方法详解。...
1.urlopen()方法urllib.urlopen(url[, data[, proxies]]) :创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据. 参数 ...
- python url拼接_python学习笔记——urllib篇
1 request模块:用于打开和读取 URL. 使用urllib.request.urlopen(url,data=None,[timeout,]*,cafile=None, capath=None ...
- pythonurllib爬虫教学_Python学习教程:这里是Python爬虫的起点,抢占资源啦
原标题:Python学习教程:这里是Python爬虫的起点,抢占资源啦 今天跟大家出的这篇文章,是从爬虫的起点开始讲起,这里的Python学习教程,一篇文章带你贯穿爬虫始末!之前也够跟大家出过相关的P ...
- python爬虫分析模拟登录时会变的参数_Python爬虫之urllib模拟登录及cookie的那点事...
在web sprider crawl过程中,许多网站都需要登录后才能访问,一般如果我们不用爬虫框架的前提下,常规用的就两个库 ,urllib库和requests库,本文将用最基础的urllib库,以 ...
- python中urllib模块安装_python如何安装urllib
urllib是Python中请求url连接的官方标准库,在Python2中主要为urllib和urllib2,在Python3中整合成了urllib.基本上涵盖了基础的网络请求功能. 该库有四个模块, ...
- Python学习笔记——爬虫之urllib数据抓取
目录 urllib库的基本使用 Get方式 POST方式: 获取AJAX加载的内容 Handler处理器 和 自定义Opener urllib库的基本使用 所谓网页抓取,就是把URL地址中指定的网络资 ...
- python爬虫从入门到实战笔记——第一章爬虫原理和数据爬取
爬虫原理和数据抓取 1.1 通用爬虫和聚焦爬虫 通用爬虫 聚焦爬虫 1.2 HTTP和HTTPS HTTP的请求与响应 浏览器发送HTTP请求的过程: 客户端HTTP请求 请求方法 常用的请求报头 服 ...
最新文章
- JVM是怎么工作的?
- NuGet是什么?理解与使用(下)
- python 二维强度图_荐 python数据分析matplotlib库使用之二维图形绘制
- [TODO]com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method
- JDBC结合JSP使用(2)
- [Linux 性能检测工具]IOSTAT
- TCP/IP协议详解内容总结(怒喷一口老血)
- python机器学习库sklearn——线性回归
- sdk 今日头条_Unity接入今日头条广告(激励广告)
- atitit.条形码的原理与生成总结java Barcode4j barcode o5
- qt的信号和槽通信机制(当多个窗口之间来回通信[父窗口和子窗口])
- java xml转换xsd,将java类转换成xsd文件
- iOS Socket 客户端 基本使用
- 小迪外卖小程序源码+后台_外卖cps 赚钱小程序源码
- 审计工作存在的难点和问题_审计工作中存在的问题及解决办法
- python常见容器操作:字符串的增删改查循环、列表的增删改查循环、元组的查循环、字典的的增删改查循环等常规操作
- 手机端滑动banner代码
- phpsocket客户端以及服务器例子
- html画布实现小球沿直线下落,js+html5实现的自由落体运动效果代码
- Elastic:Elastic Stack 8.0.0-alpha1 发布
热门文章
- [C指针] 用图表解读C声明:Unscrambling C Declarations by Diagram
- thymeleaf随机数_SpringBoot2.0实现静态资源版本控制
- javaWEB的三大组件(入门基础总结)
- php 手机端播放器,用JS代码适配电脑端和手机端播放器代码
- php 嵌入手机百度地图,C# 程序中嵌入百度地图
- c语言学习进阶-C语言程序出错处理
- 使用Addressable更好的管理内存
- 微信视频号Android面试经验,如何通过视频面试拿下offer?我们来给你支招啦!
- 使用LazZiya.ExpressLocalization开发多区域性ASP.NET Core 3、2、1项目
- Android 11 将推出系统试用功能,满意后再正式安装