看了下网上的概念,比较模糊不知道作用。利用例子总结了一下。
1.爬虫
网站有各种数据,获得自己感兴趣的数据并保存的一种脚本。
2.通信基础
1.post和get:(1)get是从服务器上获取数据,post是向服务器传送数据。
(2) 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据包装后提交。
(3) GET方式提交的数据最多只能有1024字节,而POST则没有此限制。(对于具体大小各种说法,普遍认为)
(4)get数据会显示在地址栏,密码一类敏感数据应该post方式
一个大神的总结:http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html
2.request 和response:
(1)response的对象封装了服务器向客户端响应的数据和告诉客户端应该进行什么样的操作
(2)request包含了客户端向服务器端的请求,例如账号密码。
3.利用urllib2
参考:https://www.zhihu.com/question/20899988/answer/97620435
1.获得百度贴吧图片:
图片网址:http://tieba.baidu.com/p/2460150866
浏览器定位到图片相应位置
<img pic_type="0" class="BDE_Image" src="https://imgsa.baidu.com/forum/w%3D580/sign=294db374d462853592e0d229a0ee76f2/e732c895d143ad4b630e8f4683025aafa40f0611.jpg" pic_ext="bmp" height="328" width="560">
我们想要获得这个图片的url,书写正则表达式匹配。r'src="(.+?\.jpg)" pic_ext' 括号里面的group1是想要的内容
import urllib2
import urllib
import re
def getHtml(url):
page = urllib2.urlopen(url)
response = page.read()
return response
def saveImg(imageUrl,filename):
u=urllib.urlopen(imageUrl)
data=u.read()
f=open(filename,'wb')
f.write(data)
f.close()
def getImg(html):
reg = r'src="(.+?\.jpg)" pic_ext'
imgre = re.compile(reg)
imglist = re.findall(imgre,html)
x = 0
for imgurl in imglist:
saveImg(imgurl,str(x)+".jpg")
x+=1
html = getHtml("http://tieba.baidu.com/p/2460150866")
getImg(html)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
2.访问空间:cookie的保存以及使用
import urllib2
import urllib
import cookielib
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent }
filename='cookie.txt'
cookie=cookielib.MozillaCookieJar(filename)
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
postdata=urllib.urlencode({
'uinArea':'1184996095',
'pwdArea':'18221056092',
})
loginUrl='https://i.qq.com/?rd=1'
request=urllib2.Request(loginUrl,postdata,headers)
try:
result=opener.open(request)
except urllib2.HTTPError, e:
print e.code
print e.reason
cookie.save(ignore_discard=True,ignore_expires=True)
anotherUrl='https://user.qzone.qq.com/916169754?ptlang=2052&source=friendlist'
while(True):
result=opener.open(anotherUrl)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
3.几个小操作(以后直接用了):
# def saveImg(self,imageUrl,filename):
# u=urllib.urlopen(imageUrl)
# data=u.read()
# f=open(filename,'wb')
# f.write(data)
# f.close()
#
# def saveBrief(self,content,name):
# filename=name+'/'+name+".txt"
# f=open(filename,'w+')
# f.write(content.encode('utf-8'))
# import os
# def makedir(self,path):
# path=path.strip()
# isExists=os.path.exists(path)
# if not isExists:
# os.makedirs(path)
# return True
# else:
# return False
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
4.个人总结:
emmmm..大概流程就是请求获得目标网址所有内容,写正则,匹配获得所需,保存。
cookie的获得和保存。先创建cookie,再创opener,用来获取url,各种操作获得数据保存。
北京隆鼻最好的医院http://www.fnxyey.com/
北京隆鼻需要多少钱http://www.fnxyey.com/