‘‘‘一 爬虫网络的尺寸:1 小规模,数据量小,爬取速度不敏感;利用Request库爬取网页和玩转网页2 中规模:数据规模较大,爬取速度敏感;可以利用scrapy库爬取网站或者爬取系列网站3 大规模,搜索引擎爬取速度关键,主要是通过定制开发,而不是某一个库就可以完成的,可以用于爬取全网二 爬虫网络的骚扰:受限于编写水平和目的,网络爬虫将会为web服务器带来巨大的资源开销 三 网络爬虫具有的风险:网络爬虫的法律风险 :1 服务器上的数据有产权归属2 网络爬虫获取数据后牟利将带来法律风险网络爬虫泄漏隐私网络爬虫可能具备突破简单访问控制的能力,获得被保护数据从而泄漏个人隐私。 爬虫网络的限制:来源审查:判断user-agent进行限制,检查来访HTTP协议头的User-Agent域,只响应浏览器或友好爬虫的访问。发布公告:Robots协议:告知所有的爬虫网站的爬取策略,要求爬虫遵守。 Robots协议的使用:网络爬虫:自动或人工识别robots.txt,再进行内容爬取约束性:robots协议是建议但非约束性,网络爬虫可以不遵守,但存在法律风险。‘‘‘#爬取京东某件商品的信息import requestsurl = "https://item.jd.com/2967929.html"try: r = requests.get(url) r.raise_for_status() r.encoding = r.apparent_endcoding print (r.text)except: print("crawl fail") print r.status_code print r.headers#输出结果为:#>>> crawl fail#>>> 200#>>> {‘Via‘: ‘BJ-H-NX-110(HIT), http/1.1 GZ-CM-1-JCS-116 ( [cSsSfU])‘, ‘ser‘: ‘3.85‘, ‘Content-Encoding‘: ‘gzip‘, ‘Transfer-Encoding‘: ‘chunked‘, ‘Age‘: ‘0‘, ‘Expires‘: ‘Sat, 09 Sep 2017 01:47:54 GMT‘, ‘Vary‘: ‘Accept-Encoding‘, ‘hh‘: ‘1-1‘, ‘Server‘: ‘JDWS/2.0‘, ‘Last-Modified‘: ‘Sat, 09 Sep 2017 01:46:55 GMT‘, ‘Connection‘: ‘keep-alive‘, ‘Cache-Control‘: ‘max-age=60‘, ‘Date‘: ‘Sat, 09 Sep 2017 01:46:54 GMT‘, ‘Content-Type‘: ‘text/html; charset=gbk‘} #通过百度的关键词搜索import requestskeyword="Python"try: kv={"wd":keyword} r = requests.get("http://www.baidu.com/s",params=kv) print(r.request.url) r.raise_for_status() print(len(r.text))except: print "crawl fail"#输出结果为:#>>>http://www.baidu.com/s?wd=Python#>>>353592 import requestsimport osurl = "http://image.nationalgeographic.com.cn/2017/0211/20170211061910157.jpg"root ="E://beifeng//"path=root+url.split(‘/‘)[-1]try: if not os.path.exists(root): os.mkdir(root) if not os.path.exists(path): r = requests.get(url) with open(path,‘wb‘) as f: f.write(r.content) f.close() print ("文件保存成功") else: print("文件已存在")except: print("crawl fail")#输出内容为:#>>> 文件保存成功
时间: 2024-10-12 19:55:21