Python爬虫预备知识
1.http编程知识
- http中client 和server的工作模式
client和server建立可靠的tcp链接(在HTTP1.1中这个链接是长时间的,超时断开策略)
client通过socket与server通信,发送request并接受response
http协议是无状态的,是指每一条的请求是相互独立的,client和server都不会记录客户的行为。
client通过在HTTP请求中添加headers告诉server 他请求的内容,可以接受的格式
- 常用的请求方式有get和post
Get:client请求一个文件
Post:client发送数据让server处理

如上图,输入http://www.baidu.com/
得到的request headers是:
Get :请求方式 / 表示根目录 HTTP/1.1表示采用的协议版本
HOST:请求的主机
Connection:保持长连接,
Cache-control:缓存相关
User-agent:告诉server我client的身份,包括浏览器版本等
Accept:支持的内容类型,先后次序表示浏览器依次加载的先后顺序
Accept-encoding:允许服务器以一下几种的压缩的格式对传输内容进行压缩
Accept-language:展示返回信息所采用的语言
Accept-charset:浏览器支持的字符编码集
Cookie:缓存相关
参考博客:
http://technique-digest.iteye.com/blog/1174581
http://www.cnblogs.com/ShaYeBlog/archive/2012/09/11/2680485.html
http://blog.csdn.net/bingjing12345/article/details/9819731
2. urllib2 相关内容
class urllib2.Request(url[, data][, headers][, origin_req_host][, unverifiable])
URL:应该是一个字符串
Data:是一个经过urllib.urlencode()编码的编码后字符串
Headers:用来哄骗user_agent,把来自script访问伪装成浏览器的访问。
示例代码:
|
import urllib import urllib2 url = 'http://www.someserver.com/cgi-bin/register.cgi' user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' values = {'name' : 'WHY', 'location' : 'SDU', 'language' : 'Python' } headers = { 'User-Agent' : user_agent } data = urllib.urlencode(values) req = urllib2.Request(url, data, headers) response = urllib2.urlopen(req) the_page = response.read() |
参考博客:http://blog.csdn.net/pleasecallmewhy/article/details/8923067
3. 把如下代码保存成html格式,用相应的浏览器打开,得到浏览器的版本信息
|
<html><head></head><body><script language="javascript">javascript:alert(navigator.userAgent); </script></body></html> |
搜狗浏览器的user_agent

百度浏览器的user_agent

Google chorme的user_agent

Python爬虫预备知识的更多相关文章
- python 爬虫基础知识一
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本. 网络爬虫必备知识点 1. Python基础知识2. P ...
- Python爬虫基础知识入门一
一.什么是爬虫,爬虫能做什么 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.比如它在抓取一个网 ...
- Python 爬虫基础知识
requests Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作, ...
- python 爬虫基础知识(继续补充)
学了这么久爬虫,今天整理一下相关知识点,还会继续更新 HTTP和HTTPS HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法 ...
- Python爬虫基础
前言 Python非常适合用来开发网页爬虫,理由如下: 1.抓取网页本身的接口 相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简洁:相比其他动态脚本语言,如perl ...
- Python 爬虫——抖音App视频抓包
APP抓包 前面我们了解了一些关于 Python 爬虫的知识,不过都是基于 PC 端浏览器网页中的内容进行爬取.现在手机 App 用的越来越多,而且很多也没有网页端,比如抖音就没有网页版,那么上面的视 ...
- Python爬虫爬取贴吧的帖子内容
最近在看一个大神的博客,从他那里学会了很多关于python爬虫的知识,其实python如果想用在实际应用中,你需要了解许多,比如正则表达式.引入库.过滤字段等等,下面不多说,我下面的程序是爬取Ubun ...
- Python静态网页爬虫相关知识
想要开发一个简单的Python爬虫案例,并在Python3以上的环境下运行,那么需要掌握哪些知识才能完成一个简单的Python爬虫呢? 爬虫的架构实现 爬虫包括调度器,管理器,解析器,下载器和输出器. ...
- 【Python爬虫】入门知识
爬虫基本知识 这阵子需要用爬虫做点事情,于是系统的学习了一下python爬虫,觉得还挺有意思的,比我想象中的能干更多的事情,这里记录下学习的经历. 网上有关爬虫的资料特别多,写的都挺复杂的,我这里不打 ...
随机推荐
- cf703B Mishka and trip
B. Mishka and trip time limit per test 1 second memory limit per test 256 megabytes input standard ...
- 《编写高质量代码——Web前端开发修炼之道》读后随笔
结构样式行为的分离 结构标准包括XML标准.XHTML标准.HTML标准:样式标准有CSS标准:行为标准主要包括DOM标准和ECMAScript标准. 通常的项目会按照如上的方式进行分离,但自己曾今做 ...
- lightoj 1026 无向图 求桥
题目链接:http://lightoj.com/volume_showproblem.php?problem=1026 #include<cstdio> #include<cstri ...
- 调查:Java程序员最亲睐的Web框架
这是关于Java的第二个调查,第一个调查请点这里查看. 这一次,我们要讨论的是web框架. 只有少数几种语言像Java一样提供了各种各样的web框架,上面的统计图就是一个证据.下面是其他开发者所使用w ...
- c语言:蜗牛的爬行。
main() { printf("hello,word!,第一次的c语言输出"); }
- 搜索-hdu-3720-Arranging Your Team
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3720 题目大意: 有23个人,告诉每个人的名字,能力值,以及踢球的位置.要求选出1个守门员,2个前锋 ...
- NDN路由--OSPFN安装与配置
现在的IP网络的问题已经暴露的很多了,各种改进的网络架构与设想非常多,但其中以基于内容为中心的网络发展最为迅速,其中,NDN的架构最为完整,代码也比较成熟.OSPFN是基于CCNX的,所以之前要安装C ...
- Cocos2d-X学习——Android移植,使用第三方库.so被删掉问题
2014-05-26 导语:Cocos2dx在安卓上移植的时候,增加第三方库,却发现新加的so库被删掉了. 正文: 1.我的环境: cocos2d-x 2.2.3, ndk-r9 2.网上找了非常多, ...
- mysql源码分析
http://blog.csdn.net/u012935160/article/category/2697485
- 解决Ubuntu 14.04 下SMPlayer的字幕乱码问题
1.SMPlayer播放器 对于使用ubuntu系统的同学,虽然系统初始就带有vedio播放器,但是这里强烈推荐SMPlayer,直接在Ubuntu Software Center中就可以免费下载安装 ...