所有实例代码github地址
准备工作
学习目的
爬取网站或者应用内容,提取有用信息并且简单整理
开始最好模仿,不要自己写,错了找不到原因
实现手段
模拟浏览器或者App应用操作
应用:抢票,投票,报告分析,饮食地图,舆情监控
保存数据的方法大概可以分为几类:保存文本、保存二进制文件(包括图片)、保存到数据库
爬虫
1.首先是获取目标页面
2.解析获取的网页中的元素,唯一定位,取得自己想要的(借助各种库工具,分析页面源码,)
3.存储获取的数据,比如写入数据库
代理IP,第三方python文件获取,或者加入延时模块
通用技巧
1、打印 bs4 soup 对象的内容,格式化输出
print soup.prettify()
2、
#请求头 伪装浏览器 headers={ 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Accept-Encoding':'gzip, deflate, sdch', 'Accept-Language':'zh-CN,zh;q=0.8', 'Connection':'keep-alive', 'Host':'www.meizitu.com', 'Upgrade-Insecure-Requests': '1', 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3013.3 Safari/537.36' }
3、urllib2 在 python3.x 中被改为urllib.request
import urllib.request python 3.x中urllib库和urilib2库合并成了urllib库。。 其中urllib2.urlopen()变成了urllib.request.urlopen() urllib2.Request()变成了urllib.request.Request()
实战
实战一:爬取花千骨并保存本地
with open('F:/huaqiangu.txt', 'w') as f:
f.write(link.text + 'n')
结构都类似,网站其他文章也能爬
实战二:Python爬取《三国演义》并且制作词云
urls = ['https:……/310{}.html'.format(str(i)) for i in range(224, 344, 1)]
with open('./sanguo.txt', 'w', encoding='utf-8') as f: #要在循环外部打开
我用format进行了改进,以后观察链接多看几个,我一开始看的末位4,爬6个就空了,结果规则是224
TMD编码问题好烦,搞不懂,别人代码
re的一般步骤是先使用re.compile()【写规则】函数,将正则表达式的字符串形式编译为Pattern实例,然后使用Pattern实例处理文本并获得匹配结果(一个Match实例),最后使用Match实例获得信息,进行其他的操作。
不使用re.S参数,则只在每一行内进行匹配,如果一行没有,就换下一行重新开始,不会跨行。而使用re.S参数以后,正则表达式会将这个字符串作为一个整体
分词库:结巴分词(jieba)学习 github结巴
及其他库 wordcloud,scipy,matplotlib
python词云 wordcloud 入门
实战三:福利-meizitu
有点难了
实战四:爬取花千骨并保存本地
实战一:爬取花千骨并保存本地
实战一:爬取花千骨并保存本地
实战一:爬取花千骨并保存本地
32个Python爬虫项目让你一次吃到撑
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试