安卓开发简单网站开发代码下载,湖南大钧工程建设有限公司网站,长春网站建设q.479185700惠,wordpress热门吗文章目录 前言1、基本抓取网页2、使用代理IP3、Cookies处理4、伪装成浏览器5、验证码的处理6、gzip压缩7、多线程并发抓取关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战… 文章目录 前言1、基本抓取网页2、使用代理IP3、Cookies处理4、伪装成浏览器5、验证码的处理6、gzip压缩7、多线程并发抓取关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 前言
用python也差不多好几年了python应用最多的场景还是web快速开发、爬虫、自动化运维写过简单网站、写过自动发帖脚本、写过收发邮件脚本、写过简单验证码识别脚本。
爬虫在开发过程中也有很多复用的过程这里总结一下以后也能省些事情。 1、基本抓取网页
get方法
import urllib2url http://www.baidu.com
response urllib2.urlopen(url)
print response.read()post方法
import urllib
import urllib2url http://abcde.com
form {name:abc,password:1234}
form_data urllib.urlencode(form)
request urllib2.Request(url,form_data)
response urllib2.urlopen(request)
print response.read()2、使用代理IP
在开发爬虫过程中经常会遇到IP被封掉的情况这时就需要用到代理IP
在urllib2包中有ProxyHandler类通过此类可以设置代理访问网页如下代码片段
import urllib2proxy urllib2.ProxyHandler({http: 127.0.0.1:8087})
opener urllib2.build_opener(proxy)
urllib2.install_opener(opener)
response urllib2.urlopen(http://www.baidu.com)
print response.read()3、Cookies处理
cookies是某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)python提供了cookielib模块用于处理cookiescookielib模块的主要作用是提供可存储cookie的对象以便于与urllib2模块配合使用来访问Internet资源.
代码片段
import urllib2, cookielibcookie_support urllib2.HTTPCookieProcessor(cookielib.CookieJar())
opener urllib2.build_opener(cookie_support)
urllib2.install_opener(opener)
content urllib2.urlopen(http://XXXX).read()关键在于CookieJar()它用于管理HTTP cookie值、存储HTTP请求生成的cookie、向传出的HTTP请求添加cookie的对象。整个cookie都存储在内存中对CookieJar实例进行垃圾回收后cookie也将丢失所有过程都不需要单独去操作。
手动添加cookie
cookie PHPSESSID91rurfqm2329bopnosfu4fvmu7;
kmsign55d2c12c9b1e3;
KMUIDb6Ejc1XSwPq9o756AxnBAg
request.add_header(Cookie, cookie)4、伪装成浏览器
某些网站反感爬虫的到访于是对爬虫一律拒绝请求。所以用urllib2直接访问网站经常会出现HTTP Error 403: Forbidden的情况
对有些 header 要特别留意Server 端会针对这些 header 做检查
1.User-Agent 有些 Server 或 Proxy 会检查该值用来判断是否是浏览器发起的 Request
2.Content-Type 在使用 REST 接口时Server 会检查该值用来确定 HTTP Body 中的内容该怎样解析。
这时可以通过修改http包中的header来实现代码片段如下
import urllib2headers {User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6
}
request urllib2.Request(url http://my.oschina.net/jhao104/blog?catalog3463517,headers headers
)
print urllib2.urlopen(request).read()5、验证码的处理
对于一些简单的验证码可以进行简单的识别。本人也只进行过一些简单的验证码识别。但是有些反人类的验证码比如12306可以通过打码平台进行人工打码当然这是要付费的。
6、gzip压缩
有没有遇到过某些网页不论怎么转码都是一团乱码。哈哈那说明你还不知道许多web服务具有发送压缩数据的能力这可以将网络线路上传输的大量数据消减 60% 以上。这尤其适用于 XML web 服务因为 XML 数据 的压缩率可以很高。但是一般服务器不会为你发送压缩数据除非你告诉服务器你可以处理压缩数据。
于是需要这样修改代码
import urllib2, httplib
request urllib2.Request(http://xxxx.com)
request.add_header(Accept-encoding, gzip) 1
opener urllib2.build_opener()
f opener.open(request)这是关键:创建Request对象添加一个 Accept-encoding 头信息告诉服务器你能接受 gzip 压缩数据
然后就是解压缩数据
import StringIO
import gzipcompresseddata f.read()
compressedstream StringIO.StringIO(compresseddata)
gzipper gzip.GzipFile(fileobjcompressedstream)
print gzipper.read()7、多线程并发抓取
单线程太慢的话就需要多线程了这里给个简单的线程池模板 这个程序只是简单地打印了1-10但是可以看出是并发的。
虽然说python的多线程很鸡肋但是对于爬虫这种网络频繁型还是能一定程度提高效率的。
from threading import Thread
from Queue import Queue
from time import sleep
# q是任务队列
#NUM是并发线程总数
#JOBS是有多少任务
q Queue()
NUM 2
JOBS 10
#具体的处理函数负责处理单个任务
def do_somthing_using(arguments):print arguments
#这个是工作进程负责不断从队列取数据并处理
def working():while True:arguments q.get()do_somthing_using(arguments)sleep(1)q.task_done()
#fork NUM个线程等待队列
for i in range(NUM):t Thread(targetworking)t.setDaemon(True)t.start()
#把JOBS排入队列
for i in range(JOBS):q.put(i)
#等待所有JOBS完成
q.join()关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料给那些想学习 Python 的小伙伴们一点帮助 CSDN大礼包《Python入门资料实战源码安装工具】免费领取安全链接放心点击 一、Python所有方向的学习路线
Python所有方向的技术点做的整理形成各个领域的知识点汇总它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。
二、Python基础学习视频
② 路线对应学习视频
还有很多适合0基础入门的学习视频有了这些视频轻轻松松上手Python~在这里插入图片描述
③练习题
每节视频课后都有对应的练习题哦可以检验学习成果哈哈 因篇幅有限仅展示部分资料
三、精品Python学习书籍
当我学到一定基础有自己的理解能力的时候会去阅读一些前辈整理的书籍或者手写的笔记资料这些笔记详细记载了他们对一些技术点的理解这些理解是比较独到可以学到不一样的思路。
四、Python工具包项目源码合集
①Python工具包
学习Python常用的开发软件都在这里了每个都有详细的安装教程保证你可以安装成功哦
②Python实战案例
光学理论是没用的要学会跟着一起敲代码动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。100实战案例源码等你来拿
③Python小游戏源码
如果觉得上面的实战案例有点枯燥可以试试自己用Python编写小游戏让你的学习过程中增添一点趣味
五、面试资料
我们学习Python必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有阿里大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。
六、Python兼职渠道
而且学会Python以后还可以在各大兼职平台接单赚钱各种兼职渠道兼职注意事项如何和客户沟通我都整理成文档了。 这份完整版的Python全套学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】