python爬虫学习
来源:互联网 发布:魔盒淘宝客 编辑:程序博客网 时间:2024/06/15 01:57
爬虫
网络爬虫(Web crawler),蚂蚁(ant),自动检索工具(automatic indexer),或者(在FOAF软件概念中)网络疾走(WEB scutter),是一种“自动化浏览网路”的程式,开始的时候我也是半懂的,不过这个确实像是蜘蛛一样的去构造和实现一个爬虫。
入门
关于爬虫的文章很多,但是我却想把我理解的流程写下来,这样能够更好的理解爬虫,我们知道html现在还是以树的形式去存储信息和展现信息,所以我们在获取信息的时候只要找到共同点就可以把整个网给下载下来,这也是爬虫的大显神威的地方,现在很多的泄露都是根据数据的截获来收集信息的,不过关于爬虫,关于信息,我们都需要多维度的去分析,这里不做展开,在信息安全领域,爬虫是我们必须懂得的,懂得才能够防范于未然,要不然怎么能够反击呢,最好的防范就是攻击,所以学好爬虫是很重要的一件事,下面是简单的例子,我尽量写得明了一点
入门程序
学习一门语言先要了解基本的思路和构造,学习爬虫也不列外,首先是模拟发送一个请求,然后服务器返回一个包含信息的应答,然后我们就要去遍历该信息,然后运用正则表达式去获取自己需要的信息,然后展现出来,这是初步的信息采集,然后进行批量的写入数据库,使djangoweb框架做维护,展现出来,可以生成简单的网站博客,还有进行简单的增删改查和业务逻辑处理,比如说我获取了合作商的一些基本信息,然后在流程里面就会有该公司的一些基本情况,然后对使用数据对比和挖掘进行分析,是否符合本公司的合作伙伴然后交给前台进行沟通,然后就是数据的展现和业务的升级啦,所以这也是很多公司的流程吧,当然最重要的是数据只能做简单的分析,不能够用作他图,要不然这样会破坏市场的
入门基本:
#导入所需的库import urllib.request,socket,re,sys,os#定义文件保存路径targetPath = "E:\\projects"def saveFile(path): #检测当前路径的有效性 if not os.path.isdir(targetPath): os.mkdir(targetPath) #设置每个图片的路径 pos = path.rindex('/') t = os.path.join(targetPath,path[pos+1:]) return t#用if __name__ == '__main__'来判断是否是在直接运行该.py文件# 网址url = "http://www.mafengwo.cn/i/6481670.html"headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/51.0.2704.63 Safari/537.36' }req = urllib.request.Request(url=url, headers=headers)res = urllib.request.urlopen(req)data = res.read()for link,t in set(re.findall(r'(https:[^s]*?(jpg|png|gif))', str(data))): print(link) try: urllib.request.urlretrieve(link,saveFile(link)) except: print('失败')
这是爬取马蜂窝的一些图片信息,用来做桌面,以前都是一张一张的去保存,而且还失真,感觉现在好一点点吧。这个程序是首先是保存的路径,地址和文件头,然后使用urllib库去urlopen信息,然后进行数据遍历,得到自己想要的信息,还在开始阶段,所以需要多加练习,先不要使用框架去做,这样能够更加深入的了解和使用爬虫,
数据进阶
下面使用了简单的redis进行数据的去重,然后存进数据库,有待下一文章
- 学习python爬虫
- python 爬虫学习一
- Python爬虫学习
- Python爬虫学习
- python爬虫学习
- Python学习--爬虫
- python学习爬虫
- Python 爬虫学习1
- Python 爬虫学习2
- python简单爬虫学习
- Python简单爬虫学习
- Python爬虫学习系列
- python + 机器学习 + 爬虫
- python 爬虫 学习
- python爬虫基础学习
- Python爬虫学习总结
- Python爬虫学习
- python beautifulsoup 爬虫学习
- Qt c++与QML混合编程
- C++ 数据类型所占的长度和位数
- LeetCode #403 Frog Jump
- a标签的一些用法
- Lattice系列FPGA入门相关6(理解SerDes之1)
- python爬虫学习
- Spring Boot系列教程十:Spring boot集成MyBatis
- 88. Merge Sorted Array
- 08-Oracle入门之分组函数
- Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: unauthorized (40
- 用MyEclipse开发struts
- 加密算法AES256的ECB-PKCS7Padding加密
- Mixed Content Page
- Theano中的LSTM代码解析