需要结合:《百度搜索引擎关键字URL采集爬虫优化行业定投方案高效获得行业流量-代码篇》一起学习
#百度搜索引擎关键字URL采集爬虫优化行业定投方案高效获得行业流量
#知识点
‘‘‘
1 网络爬虫
2 Python开发网络爬虫
3 requests库
4 文件操作
‘‘‘
#项目结构
‘‘‘
key.txt 关键字文档,根据这个文档中的关键字进行爬取
demo.py 爬虫文件内容了
res/软件开发.txt 爬虫采集来的URL
‘‘‘
#在Pycharm中新建项目:C:...0501
#该项目暂时没有多线程和多进程
#在项目中新建脚本spider.py
#版本信息
‘‘‘
1 环境 python3
2 第三方模块 requests 安装方法 pip install requests
3 IDE PyCharm
‘‘‘
#数据在哪里?爬取哪里的数据呢?
#打开浏览器,打开百度,在搜索框中输入“程序设计” 点击“百度一下”按钮,在百度返回的信息中,广告部分不要,其余部分的每个网站的网址
#爬虫其实就是在模拟浏览器,向目标网站发一个http请求,这个http请求是如何发送的呢?
#在浏览器按F12,可以帮助我们监控浏览器发送的请求,,90%以上的网站都是基于http请求的
#在搜索框中输入“程序设计”,点击 “百度一下”按钮之后,在Network栏会出现很多数据,每一条数据都代表一个http请求
#点击“百度一下”按钮之后,展示的页面超文本是什么样子的呢? 在空白的地方右键-->"查看网页源代码",就会发现网页其实就是一个html文本,经过浏览器处理,展示成用户看到的样子。前台看到的每一项信息都会是一个<a></a>标签,是一个超链接来的。
#所以首先需要找到html文本中的<a>标签中的超链接信息,在Network中的每个http请求的Respont栏下都有很多信息,想要拿到这个数据,就要去Headers栏下去找Request URL信息(如:Request URL:https://ss3.baidu.com/6ONWsjip0QIZ8tyhnq/ps_default.gif?_t=1525188253376)。
#要想访问一个网页首先需要知道的是,网址栏中的URL,如:https://www.baidu.com/s?wd=%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1&rsv_spt=1&rsv_iqid=0x967855b80019cdd1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=0&rsv_sug3=3&rsv_sug1=2&rsv_sug7=100&inputT=643536&rsv_sug4=644636
#过一遍原理
#网络爬虫
‘‘‘ 简单定义一下什么是爬虫
本质上就是一个程序,在获取text之前的这几行代码就是一个爬虫了
这个程序可以模拟浏览器自动去互联网上下载我们需要的网络资源
‘‘‘
#网络资源
‘‘‘
在互联网上能够访问到的图片、视频、网页、文件等
每一个网络资源,通过什么访问呢?
比如网页要通过网址来访问 url
‘‘‘
#url
‘‘‘
全球统一资源定位符
‘‘‘
#浏览器的工作流程
‘‘‘
第一步:浏览器先要访问某个资源,首先要有URL,根据这个URL去访问网络资源,这个url执行其对应的服务器,根据URL,浏览器发送HTTP请求(常用的两种方式get/post)
忽略服务器的处理环节了(毕竟不是web开发)
第二步:服务器把结果返还给浏览器,返回就是HTTP响应,正常情况下,正常返回的数据,浏览器会从中解包数据进行渲染、展示(如果是图片就展示成图片)给用户
不同的爬虫区别就在请求的部分了,根据爬的网站不同,get()需要带的参数就不同
‘‘‘
#爬虫的原理讲完了
#难在分析过程
#简单在就是发送一个http请求
#开发爬虫的几个步骤
‘‘‘
1,找到目标数据
找到目标数据所在的页面或目标数据所在的url
2,找到数据的加载流程
分析怎么发送http请求的
3,发送http请求
模拟浏览器,在“浏览器的工作流程”中有介绍
4,提取数据
数据清洗、处理
5,数据持久化
入库或写入文件
‘‘‘
#获取到response之后,就是数据处理环节了,从返回的页面html中提取有用的信息,做数据清洗--这个环节就要用到正则表达式的内容了
分析出每一条返回的结果都会被class="result c-container"的div包裹,其中的 href = ""中的内容就是我们想要的URL,就要用正则表达式去从text中提取出这一部分内容,,这一部分尽量用正则表达式去写吧,BeautifulSoap等底层也是正则表达式,效率是没有直接用正则表达式高的。
#需要复习一下正则表达式的内容
#需要复习一下文件操作
#需要复习一个html的知识
#学习正则表达式的方法:
‘‘‘
不要贪心,,很多人学习正则很贪心,以为只要看一下就能把所有元字符都学会,如果这么去想就是给自己找不痛快。
需要逐个学习元字符,,每学一个元字符,要多练,自己设计字符串去匹配。不停地去写,直到把这个元字符弄懂弄透了。
什么叫弄懂弄透了?就是3天以后再回来看,还能把它写出来。
‘‘‘
#学习方法:
#听课学习的是老师的思路,直到大概怎么做,课下再去研究。不会的时候再来看看视频,看看笔记。
#写代码方法:死去活来法
#先把程序写死,然后不停地优化,最后能让程序适应多种情况
#如何学习第三方库
#学习别人的代码,看文档知道怎么用就行了
----------------------------------------------爬虫部分学完了
原文地址:https://www.cnblogs.com/avention/p/8981563.html