gat和post封装代码和爬虫的5个步奏
1了解需求
2根据需求找网站
3请求
4获取
5存储
from urllib import request, parse
from urllib.error import HTTPError, URLError def get(url, headers=None):
return urlrequests(url, headers=headers)
#必须写headers,因为按顺序走会form def post(url, form, headers=None):
return urlrequests(url, form, headers=headers) #b. post(url, form, headers=None) def urlrequests(url, form=None, headers=None):
user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
# 如果用户需要自行传入headers, 则覆盖之前的headers
if headers == None:
headers = {
'User-Agent': user_agent
}
html_bytes = b''
try:
if form:
# POST请求
# 2.1 转换成str
form_str = parse.urlencode(form)
#print(form_str)
# 2.2 转换成bytes
form_bytes = form_str.encode('utf-8')
req = request.Request(url, data=form_bytes, headers=headers)
else:
# GET请求
req = request.Request(url, headers=headers)
response = request.urlopen(req)
html_bytes = response.read()
except HTTPError as e:
print(e)
except URLError as e:
print(e) return html_bytes if __name__ == '__main__':
url = 'http://fanyi.baidu.com/sug'
#1,准备数据
form = {
'kw': '呵呵'
}
html_bytes = post(url, form=form)
#2,调到函数
print(html_bytes)
#3,打印 # url = 'http://www.baidu.com'
# html_byte = get(url)
# print(html_byte)
gat和post封装代码和爬虫的5个步奏的更多相关文章
- gat和post封装代码
from urllib import request, parsefrom urllib.error import HTTPError, URLError def get(url, headers=N ...
- [Python]南邮OJ代码备份爬虫
之前看过Python学习的经验,说以project为导向学习. 自己分析了一下,一般接触Python的都有一定的其它语言基础,对于程序设计的基本逻辑,语法都有一个大概的了解.而Python这样的脚本语 ...
- 七、Block 封装代码
1.概念:封装代码块,调用的时候使用 2.声明 返回类型(^名字)(参数1,参数2..) = (参数类型 变量1,参数类型, 变量2){ }; int (^Sum)(int,int) = ^(int ...
- [Effective JavaScript 笔记]第27条:使用闭包而不是字符串来封装代码
函数是一种将代码作为数据结构存储的便利方式,代码之后可以被执行.这使得富有表现力的高阶函数抽象如map和forEach成为可能.它也是js异步I/O方法的核心.与此同时,也可以将代码表示为字符串的形式 ...
- python解析xml模块封装代码
在python中解析xml文件的模块用法,以及对模块封装的方法.原文转自:http://www.jbxue.com/article/16586.html 有如下的xml文件:<?xml vers ...
- python网页请求urllib2模块简单封装代码
这篇文章主要分享一个python网页请求模块urllib2模块的简单封装代码. 原文转自:http://www.jbxue.com/article/16585.html 对python网页请求模块ur ...
- <<海闻电子发票接口 ESB 封装 代码指示 文档>>
<<海闻电子发票接口 ESB 封装 代码指示 文档>> isValid 是否有效标志 代码 中文 说明 true 成功 false 失败 code 海闻错误说明 代码 中文 ...
- Ajax--json(Ajax调用返回json封装代码、格式及注意事项)
Ajax调用json封装代码<dbda.php>: //Ajax调用返回JSON public function JsonQuery($sql,$type=1,$db="mydb ...
- jdbc封装代码
jdbc封装代码 package jdbcUtil; import java.sql.Connection; import java.sql.DriverManager; import java.sq ...
随机推荐
- 修改Vim内注释字体颜色
vim /etc/vimrc 然后按大写 G 到最后一行,插入 hi comment ctermfg=6 wq保存退出 PS:默认的注释颜色是4 然后有0,1,2,3,4,5 ...
- 浅析贝叶斯神经网络(Based on Variational Bayesian)
https://blog.csdn.net/qq_20195745/article/details/82453589 贝叶斯神经网络简介 对于一个神经网络来说,最为核心的是如何根据训练集的数据,得到各 ...
- Dio添加Cookie
在使用Options添加headers时,Map没有定义内部类型: Dio dio = new Dio(); Map headers = new Map(); headers['Cookie'] = ...
- spring框架-jdbc
一.实体层的不同名字 entity 实体类 :就是和数据库表一一对应的JavaBean pojo 简单的java对象:任何应用场景的JavaBean po 持久化对象 :就是和数据库表一一对 ...
- HBuilder --- MUI , HTML5
一.创建简单app应用 ① ② ③连接手机 ④ 二.MUI 各组件的运用 http://dev.dcloud.net.cn/mui/snippet/ 三. HTML5plus 参考文档: http ...
- 如何使用postman传数组数据
如何使用postman传数组数据 在我们做api接口数据调试的时候,大部分是会用到postman的,一般请求数据的参数都是字符串,但是特殊情况下我们是需要传一个数组数据的,那么为了实现这种需求,究竟该 ...
- Mysql索引使用解析
摘自:http://blog.chinaunix.net/uid-25063573-id-3032578.html Mysql索引使用解析 1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库 ...
- JS高程关于ajax的学习笔记
1.ajax介绍 ajax技术可以实现浏览器向服务器请求数据时不需要重新加载页面,就可以从服务器中获取需要的数据. ajax技术的核心是XMLHttpRequest对象(简称XHR),XHR对象为向服 ...
- mybatis之Mybatis_demo
这篇博文通过简单的CRUD案例,让大家能够快速的上手,使用mybatis. 1,在eclipse中新建java project项目 mybatis_demo 2,在mybatis_demo项目中建 ...
- .Net Core 管道中的ConfigureServices 和Configure
ConfigureServices 就是配置服务器的DI容器 把需要的中间件等一些东西添加到DI容器 最后都是添加到IServiceCollection里面 比如 services.AddI ...