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

news/2024/7/19 10:48:48 标签: python, 爬虫, 操作系统

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

2抓取网页的学习

import requests

import re

headers={python">'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)

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

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

python">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请求可以像表单提交一样,将表单数据添加到链接中

python">data = {'name': 'germey', 'age': '22'}

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

python">print(r.text)
python">

5respones

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

例如

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

print(r.status_code)

print(r.headers)

print(r.cookies)

print(r.url)

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

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

python">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


http://www.niftyadmin.cn/n/819740.html

相关文章

Windows10 安装 CentOS7(双系统)

为了安装 CentOS7&#xff0c;我在网上查看了许多安装教程&#xff0c;不过看完之后还是有许多疑惑。在我成功装上CentOS7之后&#xff0c;我终于清楚了如何安装 CentOS7。 准备 下载 CentOS7 系统镜像文件&#xff0c;下载地址&#xff1a;https://www.centos.org/download/…

Linux安装NS3

我写的内容多是重复NS3官方文档里面的内容&#xff0c;如果看不懂我写的东西或我的内容与官方文档有冲突&#xff0c;以官方文档为准。建议大家多看看文档&#xff08;程序员的必备技能&#xff09;。 下载NS3 有多种下载NS3方式&#xff0c;最简单的是直接从官网下载NS3。从…

大道至简第一章伪代码

一&#xff0e;愚公移山 Import.java.大道至简.*; Import.java.愚公移山.*; Punlic class yishan { Public static void main (string [] args) { While(山不平) { 叩石垦壤&#xff0c;箕㮥于渤海之尾&#xff1b; If(愚公不死) { 愚公与子孙一起移山&#xff1b; } Else { 子…

Python 模块的快速安装

Python 模块的快速安装 因为网络问题&#xff0c;有时候我们下载Python的模块会失败。这里介绍一种快速安装 Python 模块的方法。以安装 Pillow 为例。 下载模块的文件包 我们需要进入网站http://www.lfd.uci.edu/~gohlke/pythonlibs/ 通过快捷键 Ctrl f 搜索 Pillow …

重建redo文件

需求背景 由于前期安装oracle时redo文件大小或者路径规划不合理需要进行修改&#xff0c;以便满足性能测试要求。redo文件规划大小建议与生产环境一致。 重做日志相关数据字典 1、v$log 记录数据库中有多少个重做日志组&#xff0c;每个组中有多少个成员、日志大小及状态 2、v…

PL/SQL笔记

PL/SQL笔记 使用Oracle数据库的SCOTT用户中的表来演示 匿名块 -- 结构 declare -- 声明v_ename varchar2(20) beginselect ename into v_ename from emp where empno7839;dbms_output.put_line(president is || v_ename); end; / 演示用游标读取emp表 -- 开启屏幕打印&…

(其他)小程序介绍和开发

转自CSDN: 本文会从小程序前端开发&#xff0c;小程序服务端开发及小程序的发布与审核三个方面来阐述小程序的开发流程。 一、小程序前端介绍及开发 小程序的开发涉及到前端开发和后端开发&#xff0c;前端指的是在手机上能看到的部分&#xff0c;主要负责页面的布局排版及展示…

ICacheManager缓存对象

1 //声明一个缓存对象2 private static ICacheManager CM CacheFactory.GetCacheManager();3 ...4 //尝试从缓存中获取集合元素5 if (CM.Contains(key) && CM[key]!null) {6 MyType mytype CM[key] as MyType;7 return tmptype;8 …