python 爬虫学习

opencv学到心类,函数看了一遍,并不怎么记得住。算是把《opencv 2计算机视觉编程手册+源码》看完了,后两章的头文件里面,feature2D有问题,额,运行不了,等下换自己的windows试试吧。前八章的学习过程还没写在博客懒得不行。
想用python爬一下网易云的评论,哈哈,慢慢学一下。
知乎专栏,相当于总结贴
Python爬虫入门四之Urllib库的高级用法

1.简单读取html

import urllib2

response=urllib2.urlopen("http://music.163.com")

print response.read()

这三句就可以把网易云音乐主页的html全部输出出来。

首先,我们引入python的urllib2库。
然后,我们对一个url地址进行访问。
打印出来。

不想改文件名,就写一小个复制过来,文件里面就不保存了。

2.Urllib库的使用-设置Headers

import urllib  
import urllib2  

url = 'http://www.zhihu.com'
user_agent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0'  
values = {'username' : 'cqc',  'password' : 'XXXX' }  
headers = { 'User-Agent' : user_agent }  
data = urllib.urlencode(values)  
request = urllib2.Request(url, data, headers)  
response = urllib2.urlopen(request)  
page = response.read() 
print page

只是加个user_agent,在自己浏览器上用F12看到的。

3.cookie的使用

参考

#coding=utf-8
import urllib2
import cookielib
#声明一个CookieJar对象实例来保存cookie
cookie = cookielib.CookieJar()
#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器
handler=urllib2.HTTPCookieProcessor(cookie)
#通过handler来构建opener
opener = urllib2.build_opener(handler)
#此处的open方法同urllib2的urlopen方法,也可以传入request
response = opener.open('http://www.music.163.com')
for item in cookie:
    print 'Name = '+item.name
    print 'Value = '+item.value

报错: SyntaxError: Non-ASCII character ‘\xe5’ in file 是注释里面的汉字编码问题,加上#coding=utf-8即可。
输出如下

Name = BAIDUID
Value = 9309FD1C2456BA556C5B68CB37EAACC1:FG=1
Name = BIDUPSID
Value = 9309FD1C2456BA556C5B68CB37EAACC1
Name = H_PS_PSSID
Value = 23948_1467_19033_21119_18560_20930
Name = PSTM
Value = 1501119394
Name = BDSVRTM
Value = 0
Name = BD_HOME
Value = 0

4.cookies文件的保存和读取

#coding=utf-8
import cookielib
import urllib2

#设置保存cookie的文件,同级目录下的cookie.txt
filename = 'cookie.txt'
#声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件
cookie = cookielib.MozillaCookieJar(filename)
#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器
handler = urllib2.HTTPCookieProcessor(cookie)
#通过handler来构建opener
opener = urllib2.build_opener(handler)
#创建一个请求,原理同urllib2的urlopen
response = opener.open("http://www.baidu.com")
#保存cookie到文件
cookie.save(ignore_discard=True, ignore_expires=True)

后面的参数官方文档如下:

ignore_discard: save even cookies set to be discarded. 

ignore_expires: save even cookies that have expiredThe file is overwritten if it already exists

由此可见,ignore_discard的意思是即使cookies将被丢弃也将它保存下来,ignore_expires的意思是如果在该文件中cookies已经存在,则覆盖原文件写入,在这里,我们将这两个全部设置为True。
保存.txt如图:这里写图片描述
那么我们已经做到把Cookie保存到文件中了,如果以后想使用,可以利用下面的方法来读取cookie并访问网站。

#coding=utf-8
import cookielib
import urllib2

#创建MozillaCookieJar实例对象
cookie = cookielib.MozillaCookieJar()
#从文件中读取cookie内容到变量
cookie.load('cookie.txt', ignore_discard=True, ignore_expires=True)
#创建请求的request
req = urllib2.Request("http://www.baidu.com")
#利用urllib2的build_opener方法创建一个opener
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
response = opener.open(req)
print response.read()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值