鱼C论坛

 找回密码
 立即注册
查看: 1343|回复: 0

[技术交流] 第 54 讲 论一只爬虫的自我修养 2

[复制链接]
发表于 2018-5-3 22:10:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
测试题:
0.
为HTTP,HTTPS,FTP类链接请求规定相应时间

连接超时时间,单位是秒.

1.
使用getcode()方法

2.
POST和GET

3.
互相响应

发出请求的永远是客户端,响应的永远是服务器.

4.
请求者的标识符,服务器用来识别访问者是普通浏览器还是代码.

普通浏览器用这玩意向网站汇报我的浏览器类型,操作系统,浏览器内核等.

5.
在urlopen()里面,加入data参数.

6.
首先要知道字符串的编码,再用string.decode(编码)转为unicode

7.
结构化的字符串形式.

用字符串把python的数据结构封装起来,方便存储使用

动动手:
0.
import urllib.request as r

##width = 400
##highth = 600

width = input('请输入宽度:')
highth = input('请输入高度:')

##file_path = input('请输入保存位置:')

file_path = '/Users/yufan/Documents/python编程/54/cat_%s_%s.png' % (width,highth)

response = r.urlopen('http://placekitten.com/%s/%s' % (width,highth))

##response = r.urlopen('http://www.placekitten.com/200/300')

html = response.read()

with open(file_path,'wb') as f:
    f.write(html)


1.
# -- coding:gbk --
import re
import urllib
import http
 
loginurl = 'https://www.douban.com/accounts/login'
cookie = http.cookiejar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookie))
 
params = {
"form_email":"your email",
"form_password":"your password",
"source":"index_nav" #没有的话登录不成功
}
 
#从首页提交登录
response=urllib.request.OpenerDirector.open(loginurl, urllib.urlencode(params))
 
#验证成功跳转至登录页
if response.geturl() == "https://www.douban.com/accounts/login":
    html=response.read()
 
    #验证码图片地址
    imgurl=re.search('<img id="captcha_image" src="(.+?)" alt="captcha" class="captcha_image"/>', html)
    if imgurl:
        url=imgurl.group(1)
        #将图片保存至同目录下
        res=urllib.urlretrieve(url, 'v.jpg')
        #获取captcha-id参数
        captcha=re.search('<input type="hidden" name="captcha-id" value="(.+?)"/>' ,html)
        if captcha:
            vcode=raw_input('请输入图片上的验证码:')
            params["captcha-solution"] = vcode
            params["captcha-id"] = captcha.group(1)
            params["user_login"] = "登录"
            #提交验证码验证
            response=urllib.request.OpenerDirector.open(loginurl, urllib.urlencode(params))
            ''' 登录成功跳转至首页 '''
            if response.geturl() == "http://www.douban.com/":
                print ('login success ! ')

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 02:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表