python3 爬虫6--requests的使用(1)

1用requests进行网页请求与urlopen差不多,这里省略不说

2抓取网页的学习

import requests

import re

headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'}

r=requests.get("https://www.zhuhu.com/explore",headers=headers)

#下面是正则表达式,我在之后学习,这里我看不懂。。

pattern = re.compile('explore-feed.*?question_link.*?>(.*?)</a>', re.S)

titles = re.findall(pattern, r.text)

print(titles)

上面是知乎发现网页抓取的例子,唯一需要注意的是get请求的时候需要添加Headers,不能直接get请求。

3抓取二进制数据

r=requests.get('http://github.com/favicon.ico')

print(r.text)

print(r.content)

抓取的目标是站点的图标

r.text返回的是字符串类型,返回的结果是文本文件

r.content如果返回的结果是图片、音频、视频文件,则获得字节流数据

with open('favicon.ico','wb') as f:

  f.write(r.content)

这样就可以把图标文件存储到了favicon.ico文件中,同样的音频、视频文件也能这样获取。

4post请求

post请求可以像表单提交一样,将表单数据添加到链接中

data = {'name': 'germey', 'age': '22'}

r = requests.post("http://httpbin.org/post", data=data)

print(r.text)

5respones

我们可以通过get请求之后的respons获得更多的信息

例如

r=requests.get('http://www.jianshu.com')

print(r.status_code)

print(r.headers)

print(r.cookies)

print(r.url)

我们可以判断查询码判断请求是否成功

r = requests.get('http://www.jianshu.com')

exit() if not r.status_code == requests.codes.ok else print('Request Successfully')

print(r.history)

状态码存储在Spider-python文件夹中。

转载于:https://www.cnblogs.com/daibigmonster/p/7528253.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值