python爬虫流程及方法01

二叉树上的我

活捉一只小RBQ
2020-02-27
28
20
3
www.spiritlhl.top
爬虫究竟是合法还是违法的?
在法律中是不被禁止
具有违法风险
善意爬虫
勿恶意爬虫
爬虫带来的风险可以体现在如下2方面:
爬虫干扰了被访问网站的正常运营
爬虫抓取了收到法律保护的特定类型的数据或信息
如何在使用编写爬虫的过程中避免进入局子的厄运呢?
时常的优化自己的程序,避免干扰被访问网站的正常运行
在使用传播爬取到的数据时,审查抓取到的内容,如果发现了涉及到用户的商业机密等敏感内容需要及时停止爬取或传播
爬虫的矛与盾
反爬机制
门户网站,可以通过制定相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取。
反反爬策略
爬虫程序可以通过制定相关的策略或者技术手段,破解]户网站中具备的反爬机制,从而可以获取门户网
robots. txt协议:
君子协议。规定了网站中哪些数据可以被爬虫爬取哪些数据不可以被爬取。

例如这个:https://www.bilibili.com/robots.txt
ps:本论坛没有该协议,可以随便爬(滑稽)

前置条件:软件:pycharm/thonny/自带IDLE ,明白python的基本语法,缩进/字典/元组/列表/循环结构/函数运用/文件存储(绝对路径/相对路径)
step1.安装第三方模块:调出cmd窗口输入以下字符
(每一行是一个包,等待下载完后再进行下一个包的下载)
python -m pip install --upgrade pip
pip install requests
pip install bs4
pip install lxml
pip install urllib
step2.确认爬虫流程:
1.指定url
2.请求前进行UA伪装(模拟游览器发出请求)
3.选择post还是get请求
4.请求发送
5.获取响应数据
6.进行存储
step3.实际代码的编写:

Python:
import requests  #每使用一个包的方法就得导入一个包



#(引入包后空两行,语法的正确书写习惯)

a = True

while a:  #这里可以改成循环结构对网页进行实时爬取,每次爬取覆盖上次的成果

    url = "网址"  #指定所爬取页面的网址

    headers = {

        'user-agent':'粘贴1处'

    }    #在页面中点击右键选择检查,调出网页自带的抓包工具,在network中刷新当前页面抓包找到user-agent的项复制粘贴1,找到Query String Parameters的项复制粘贴2(记得加符号’粘贴2‘)

    params = {

        '某名字': '某值',

        '粘贴2‘: '粘贴2'

    }

    res = requests.get(url=url,params=params,headers=headers)  #这里是对网页发起请求并内置参数

    dict_object = res.text #对返回内容进行text处理并赋值给一个字典

    with open("./lolichan.html","w",encoding='utf-8') as fp:

           #打开或生成一个文档并选定为写w的状态,转换字符的编码为utf-8

        fp.write(dict_object)#往文档内存储爬取的网页源码

    print('over') #存储成功提示

    a = False
step4.实际运用:
参照在Windows区之前发的本网站首页的爬取,安装而未用到的包下次再讲,剩下的包用于数据的解析定位
如果想要看效果视频,参照B站视频效果
CC BY-NC 4.0
 

附件

最后编辑:
  • 支持
反馈: 萌新杰少