pythoncookielib
1. python标准库中常用的网络相关模块有哪些
1、asynchat、asyncore
asynchat是asyncore的增强版。asyncore则是异步套接字处理程序。
2、Cookie、cookielib
Cookie对象操作,主要用于服务器。cookielib客户端的cookie的支持。
3、email
E-mail邮件消息的支持。包括MIME
4、imaplib
IMAP4客户端模块
5、mailbox
读取多种邮箱的格式
6、mailcap
通过mailcap文件访问MIME配置
7、mhlib
访问MH邮箱
8、poplib
POP客户端模块
9、robotparser
支持解析Web服务器的robot文件
10、SimpleXMLRPCServer
一个简单的XML-RPC服务器
11、smtpd、smtplib
SMTP服务器端模块、SMTP客户端模块
python标准库中常用的网络相关模块并不止以上这些。还有很多,但并不一定都需要了解,只需在需要使用的时候查找参考使用即可。
2. 如何评价利用python制作数据采集,计算,可视化界面呢
先来设置两个url地址,第一个用于第一次访问,这样可以获得网站服务器发来的cookie,第二个网址是用于登陆的地址
引入两个模块,cookielib和urllib2
接着,我们安装一个cookie处理器,代码如下,这个代码很多人不太能读懂,其实你会用就可以了,他们就是这个固定的形式,顶多改改变量的名字。你复制下来以后自己用就可以了,用多了,你再去看代码的意义,你就都懂了。
然后我们先访问一下网站,获得一个cookie,你不用管这个cookie该怎么弄,前面设置的cookie处理器会自动处理。
接着,我们写一下postdata,也就是你要post的数据,因为我们打算登陆网站,所以postdata里肯定有用户名和密码,那么怎么知道该怎么写postdata呢?看你抓包得到的post数据。下面第一幅图是httpwatch抓包截图,点击postdata,看到post的数据,然后我们看第二幅图,就是python的写法。你自己感受一下。
写完postdata以后,我们 要将postdata转码一下,让服务器可以解读postdata数据
接着设置headers信息,headers也是抓包得到的。同样的方式,你去写header内的信息
然后我们通过request方法来登陆网站,并返回数据,返回的数据存储在request中
通过rulopen方法和read方法来读取数据,并打印出来。
我们看到输出的结果,这说明我们虽然正确的模拟了登陆网站需要的post信息,但是没有考虑到登陆网站是需要验证码的,后期我们会看到如何处理验证码,如果你拿这个教程去处理没有验证码的登陆问题,那么你现在已经成功了。
3. python cookielib模块有什么用
抓去网页的时候,用cookielib模块 获得cookie值
你的采纳是我前进的动力,
记得好评和采纳,答题不易,互相帮助,
手机提问的朋友在客户端右上角评价点(满意)即可.
如果你认可我的回答,请及时点击(采纳为满意回答)按钮!!
4. 如何利用Python爬虫从网页上批量获取想要的信息
稍微说一下背景,当时我想研究蛋白质与小分子的复合物在空间三维结构上的一些规律,首先得有数据啊,数据从哪里来?就是从一个涵盖所有已经解析三维结构的蛋白质-小分子复合物的数据库里面下载。这时候,手动一个个去下显然是不可取的,我们需要写个脚本,能从特定的网站选择性得批量下载需要的信息。python是不错的选择。
import urllib #python中用于获取网站的模块
import urllib2, cookielib
有些网站访问时需要cookie的,python处理cookie代码如下:
cj = cookielib.CookieJar ( )
opener = urllib2.build_opener( urllib2.HttpCookieProcessor(cj) )
urllib2.install_opener (opener)
通常我们需要在网站中搜索得到我们需要的信息,这里分为二种情况:
1. 第一种,直接改变网址就可以得到你想要搜索的页面:
def GetWebPage( x ): #我们定义一个获取页面的函数,x 是用于呈递你在页面中搜索的内容的参数
url = 'http://xxxxx/xxx.cgi?&' + ‘你想要搜索的参数’ # 结合自己页面情况适当修改
page = urllib2.urlopen(url)
pageContent = page.read( )
return pageContent #返回的是HTML格式的页面信息
2.第二种,你需要用到post方法,将你搜索的内容放在postdata里面,然后返回你需要的页面
def GetWebPage( x ): #我们定义一个获取页面的函数,x 是用于呈递你在页面中搜索的内容的参数
url = 'http://xxxxx/xxx' #这个网址是你进入搜索界面的网址
postData = urllib.urlencode( { 各种‘post’参数输入 } ) #这里面的post参数输入需要自己去查
req= urllib2.Request (url, postData)
pageContent = urllib2.urlopen (req). read( )
return pageContent #返回的是HTML格式的页面信息
在获取了我们需要的网页信息之后,我们需要从获得的网页中进一步获取我们需要的信息,这里我推荐使用 BeautifulSoup 这个模块, python自带的没有,可以自行网络谷歌下载安装。 BeautifulSoup 翻译就是‘美味的汤’,你需要做的是从一锅汤里面找到你喜欢吃的东西。
import re # 正则表达式,用于匹配字符
from bs4 import BeautifulSoup # 导入BeautifulSoup 模块
soup = BeautifulSoup(pageContent) #pageContent就是上面我们搜索得到的页面
soup就是 HTML 中所有的标签(tag)BeautifulSoup处理格式化后的字符串,一个标准的tag形式为:
hwkobe24
通过一些过滤方法,我们可以从soup中获取我们需要的信息:
(1) find_all ( name , attrs , recursive , text , **kwargs)
这里面,我们通过添加对标签的约束来获取需要的标签列表, 比如 soup.find_all ('p') 就是寻找名字为‘p’的 标签,而soup.find_all (class = "tittle") 就是找到所有class属性为"tittle" 的标签,以及soup.find_all ( class = re.compile('lass')) 表示 class属性中包含‘lass’的所有标签,这里用到了正则表达式(可以自己学习一下,非常有用滴)
当我们获取了所有想要标签的列表之后,遍历这个列表,再获取标签中你需要的内容,通常我们需要标签中的文字部分,也就是网页中显示出来的文字,代码如下:
tagList = soup.find_all (class="tittle") #如果标签比较复杂,可以用多个过滤条件使过滤更加严格
for tag in tagList:
print tag.text
f.write ( str(tag.text) ) #将这些信息写入本地文件中以后使用
(2)find( name , attrs , recursive , text , **kwargs )
它与 find_all( ) 方法唯一的区别是 find_all() 方法的返回结果是值包含一个元素的列表,而 find() 方法直接返回结果
(3)find_parents( ) find_parent( )
find_all() 和 find() 只搜索当前节点的所有子节点,孙子节点等. find_parents() 和 find_parent() 用来搜索当前节点的父辈节点,搜索方法与普通tag的搜索方法相同,搜索文档搜索文档包含的内容
(4)find_next_siblings() find_next_sibling()
这2个方法通过 .next_siblings 属性对当 tag 的所有后面解析的兄弟 tag 节点进代, find_next_siblings() 方法返回所有符合条件的后面的兄弟节点,find_next_sibling() 只返回符合条件的后面的第一个tag节点
(5)find_previous_siblings() find_previous_sibling()
这2个方法通过 .previous_siblings 属性对当前 tag 的前面解析的兄弟 tag 节点进行迭代, find_previous_siblings()方法返回所有符合条件的前面的兄弟节点, find_previous_sibling() 方法返回第一个符合条件的前面的兄弟节点
(6)find_all_next() find_next()
这2个方法通过 .next_elements 属性对当前 tag 的之后的 tag 和字符串进行迭代, find_all_next() 方法返回所有符合条件的节点, find_next() 方法返回第一个符合条件的节点
(7)find_all_previous() 和 find_previous()
这2个方法通过 .previous_elements 属性对当前节点前面的 tag 和字符串进行迭代, find_all_previous() 方法返回所有符合条件的节点, find_previous()方法返回第一个符合条件的节点
具体的使用方法还有很多,用到这里你应该可以解决大部分问题了,如果要更深入了解可以参考官方的使用说明哈!
5. python中的cookielib有什么作用
登录只有做一次,登录后浏览页面之类的,如果没有cookie,就会提示你没有登录
6. 关于用python写的登陆程序,怎么获取cookie值并返回出来
cookielib.CookieJar(),自动进行cookie管理:实例:
cj = cookielib.Cookiejar()
urlopen('...')
for index, cookie in enumerate(cj):
print '[',index, ']',cookie
7. python 如果往cookielib.CookieJar()里手动添加字段
defmake_cookie(name,value):
returncookielib.Cookie(
version=0,
name=name,
value=value,
port=None,
port_specified=False,
domain="xxxxx",
domain_specified=True,
domain_initial_dot=False,
path="/",
path_specified=True,
secure=False,
expires=None,
discard=False,
comment=None,
comment_url=None,
rest=None
)
jar=cookielib.CookieJar()
...
jar.set_cookie(make_cookie("name","value"))
...
8. 想用python写个在某个论坛自动回帖顶帖的程序,需要用到什么模块
以python 2.7为例。
首先肯定会用到: urllib urllib2
cookielib。顶贴一般也就是回复一个帖子了,那么要像服务器发送一个特定的http请求,用python构造出这个请求再发就行了,具体构造成什
么样,可以用firebug等工具看实际发帖过程中发到服务器的请求。
还有可能用到:re htmllib BeautifulSoup json 等。用来解析获取的web页面,用正则表达式或者专用于html解析的包来分析页面,在页面里找东西(比如想要抢沙发的话,可能会找没有回复的帖子)。
更
多可能用到的包:如PIL,PyQt 等。
PIL用于处理验证码图片,比如二值化。一说到验证码,问题就复杂了,可能想要人工输入验证码的话会用到GUI的包比如Qt,还有可能比较弱的验证码用
PIL做简单的图像处理就能识别了,如何处理比较复杂的验证码可以单独开一个问题了,可能会涉及到人工智能方面的东西。
9. 求教python缺少cookielib模块怎么办
python缺少cookielib模块怎么办
你要模拟网页登录,要发送请求,你首先要知道这个请求的规范。
比如:xxx.xxx.xxx/login?&user=xxx&pwd=xxxx
你说验证码,那么到底是以参数的形式跟在请求的url中,还是以header的形式,这些你要先确定了才能说怎么来模拟。
你可以先在网页端做一下登录过程,用google浏览其的F12(开发者工具),就可以看的很清楚:你的url请求中,包含哪些request header,url中包含了哪些参数parse