技术标签: python3爬虫
虽然Python标准库中的urllib模块包含了平常我们使用的大多数功能,但是它的API使用起来让人感觉不太好,而Request自称”HTTP for Humans“,说明使用更简单方便。
Request唯一的非转基因的Python库,人类可以安全享有,
Request继承了urllib的所有特性,Request支持HTTP链接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码。支持国际化的URL和POST的数据自动编码。
pip install requests
如果想添加headers,可以传入headers参数来增加请求头中headers信息,如果要将参数放在url中传递,可以利用params参数。
# coding=utf-8
import requests
headers = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"}
p = {"wd":"明朝那些事"}
url_temp = "https://www.baidu.com/s?"
url_temp = "https://www.baidu.com/s"
#params接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()
r = requests.get(url_temp,headers=headers,params=p)
#查看响应内容,r.text返回的是unicode格式的数据
print(r.text)
#查看响应内容,r.content返回的字节流数据
print(r.content)
#查看完整的url地址
print(r.url)
#查看响应码
print(r.status_code)
#查看响应头部字符编码
print(r.encoding)
url = "https://www.baidu.com/s?wd={}".format("明朝那些事")
r = requests.get(url,headers=headers)
print(r.status_code)
print(r.request.url)
#coding=utf-8
import requests
response = requests.get("http://www.sina.com")
print(response.request.headers)
print(response.content.decode())
结果
{'User-Agent': 'python-requests/2.12.4', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
<!DOCTYPE html>
<!-- [ published at 2017-06-09 15:15:23 ] -->
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>新浪首页</title>
<meta name="keywords" content="新浪,新浪网,SINA,sina,sina.com.cn,新浪首页,门户,资讯" />
...
#coding=utf-8
import requests
response = requests.get("http://www.sina.com")
print(response.request.headers)
print(response.text)
{'User-Agent': 'python-requests/2.12.4', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
<!DOCTYPE html>
<!-- [ published at 2017-06-09 15:18:10 ] -->
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>新浪首页</title>
<meta name="keywords" content="新浪,新浪网,SINA,sina,sina.com.cn,新浪首页,门户,资è¯" />
<meta name="description" content="新浪网为全çƒç”¨æˆ·24å°æ—¶æ供全é¢åŠæ—¶çš„ä¸æ–‡èµ„è¯ï¼Œå†…å¹è¦†ç›–国内外çªå‘新闻事件ã€ä½“å›èµ›äº‹ã€å¨±ä¹æ—¶å°šã€äº§ä¸šèµ„è¯ã€åžç”¨ä¿¡æ¯ç‰ï¼Œè¾æœ‰æ–°é—»ã€ä½“育ã€å¨±ä¹ã€è´¢ç»ã€ç§‘技ã€æˆ¿äº§ã€æ±½è½¦ç‰30多个内å¹é¢‘é“,åŒæ—¶å¼€è¾åšå¢ã€è§†é¢‘ã€èºå›ç‰è‡ªç”±äº’动交æµçºé—´ã€‚" />
<link rel="mask-icon" sizes="any" href="//www.sina.com.cn/favicon.svg" color="red">
`
产生问题的原因:
文章浏览阅读1.1k次。根据VCD文件的type,PTPX支持instantaneous peak power analysis和cycle_accurate peakpower analysis。Time-Based Power Analysis支持的VCD type 由于Gate_level和zero_delay的VCD不支持event propa..._ptpx time
文章浏览阅读79次。VisualSVN安装教程、、、-----------------------------------参考网址:https://www.visualsvn.com/server/download/安装参考网址:http://www.jb51.net/article/71815.htm----------------------------------------------..._安装visualsvn
文章浏览阅读8.6k次,点赞7次,收藏97次。图文结合地介绍如何快速搭建一个自己的博客网站_wordpress建站
文章浏览阅读2.4k次。 1.模块划分模块划分的“划”是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能(依功能进行划分在面向对象设计中成为一个错误,牛顿定律遇到了相对论),C语言模块化程序设计需理解如下概念:(1) 模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明;_c语言嵌入式系统编程修炼之道
文章浏览阅读8.8k次,点赞2次,收藏20次。比较LongAdder ,Atomic,synchronized 以及使用Unsafe类中实现的cas 和模拟Atomic,在多线程下的效率 ,见代码,放开对应注释,运行即可看到结果,通过更改线程数,可以查看不同并发情况下性能对比,通过更改循环执行次数,可以查看长时间或短时间持续并发情况下性能对比;测试服务器cpu 为i3-4170, 4核 3.7GHzimport java.lang.refl..._atomicinteger+1
文章浏览阅读2.6w次。过来,我告诉你个秘密:送给程序员男友最好的礼物,快教你对象学习磁盘分区啦!小点声哈,别让其他人学会了!_armbian mklabel命令
文章浏览阅读531次。参考API Design Guidelineshttps://swift.org/documentation/api-design-guidelines/swift-style-guidehttps://github.com/raywenderlich/swift-style-guide项目命名规范一、工程文件夹、文件目录结构【业务模块】1、文件夹采用下划线命名,名字全部小写下划线间隔,如module_login2、文件、类、结构体、枚举、协议采用大驼峰命名,每个单词首字母大写,如 MyCu_swift 正则判断文件类型
文章浏览阅读2.2w次。1、return命令会使得一个函数返回.return命令会返回一个单一的数字参数, 而这个数字参数在调用这个函数的脚本中是可见的.如果没有指定返回参数,return在默认情况下会返回上一次命令的返回代码。2、了解一个概念:return value ﹗我们在 shell 下跑的每一个 command 或 function ,在结束的时候都会传回父行程一个值,称为 return value 。在 shell command line 中可用 $? 这个变量得到最"新"的一个 return value_shell return
文章浏览阅读834次。本系列文章主要写我在阅读Linux内核过程中,关注的比较难以理解但又设计巧妙的代码片段(不关注OS的各个模块的设计思想,此部分我准备写在“深入理解Linux Kernel”系列文章中),一来通过内核代码复习一下C语言及汇编语言的语法,二来学习内核开发大牛们书写代码的风格及思路。理解了上面之后,再来看看第二个BUILD_BUG_ON_NULL(e)宏,与第一个类似,-------------------------------------完--------------------------------_build_bug_on_zero
文章浏览阅读678次。//调用单片机头文件#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255#define uint unsigned int //无符号整型 宏定义 变量范围0~65535#include "eeprom52.h"#include "nongli.h"bit flag_2..._基于单片机的自动打铃控制系统设计提纲
文章浏览阅读550次。这几天,在整一个php在线邮件批量发送的程序来着。如果是一人一封一封发送的话,耗时又久又资源,抄送的话,收件人就会看到其他收件人了,这种时候,密抄就最是适合了。什么是抄送、密抄?抄送就是将一封邮件同时发给多个收件人,各收件人都可以看到其他收件人地址。抄送效果和平时发邮件时,用“,”将地址隔开的差不多密抄和抄送差不多,但是,各收件人都不可以看到其他收件人地址,换句话说,他收到这封..._smtp 密抄
文章浏览阅读4.5k次,点赞6次,收藏49次。开发环境介绍anaconda- 集成环境:集成好了数据分析和机器学习所需要的全部环境- 注意:安装目录中不可以有中文和特殊符号jupyterjupyter就是anaconda提供的一个基于浏览器的可视化开发工具jupyter基本使用启动:在终端录入:jupyter notebook的指令,按下回车新建:python3: anaconda中的一个源文件cell有两个模式:code 和 markdown; 修改模式:m ,y(修改成code模式)添加c_python课程题目数据清除与可视化