爬虫开发,从入门到入狱

写一个爬虫程序 总共分那几个步骤?

1.获取网页内容(本质上是给网站服务器发送请求获取网页内容)
2. 解析网页内容 (提取有用信息)
3. 存储或分析数据 (取决于具体需求,把数据保存到数据库或者做成图表展示等)

这几个个步骤适用于一个网页的情况,也可以给一串网址进行爬取或者以网页上某个链接为根,顺着他指向的地址都爬取一遍

第一步 获取网页内容

http、python的Request库(发送http网络请求)
http 有不同的请求方法,最常用的是get、post;爬虫基本上是获得数据,所以大部分情况下使用的是get方法;
一个完整的http请求由三部分组成请求行、请求头、请求体
我们根据请求头和请求行可以得到一个完整的网址,并且在请求头中告诉服务器客户端的相关信息,比如请求是浏览器发出来的还是其他东西发出来的,并且指定客户端想接受到的响应数据是什么类型的
get请求的请求体一般是空的。

http响应
HTTP响应由状态行、响应头、响应体组成
响应体就是服务器给客户端的东西
python 如何构建和发送http请求?
pthon Requests
1.安装三方库pip install requests
2.引用 import requests
3.发送get请求 requests.get(URL)
4.获取响应 response = requests.get(URL)
5.判断响应状态
6.response.text属性会以字符串存储响应内容,一般是字符串存储的html
一个示例:

import requests

response = requests.get("http://wdk.eatWhat.com/")
if response.ok:
	print(response.text)
else:
    print("wdk eat nothing")

当我们需要爬虫伪装成正常的浏览器时,就需要传入第二个参数,请求头
这是因为当我们使用浏览器发送请求时,请求头的User-Agent会自动带上浏览器类型和版本信息,电脑操作系统等等,而通过代码发送请求就不会带有这些信息,服务器就会通过这点拒绝来自程序的请求

import requests

head = { "User-Agent": "xxxxxx/xxxxxxxx" }
response = requests.get("http://wdk.eatWhat.com/", header = head)
if response.ok:
	print(response.text)
else:
    print("wdk eat nothing")

那怎么获取正确的user agent值呢?
抄作业,去该网站 F12 查看请求里的user agent,抄过来

第二步 解析网页内容

html网页结构,python的beautiful Soup库(解析html,提取想要的内容)
什么是网页结构?
一个网页的组成:css 样式,html 网页结构和信息,JavaScript 交互逻辑脚本
我们爬虫最关心网页上的数据信息,所以主要和html打交道
一个简单的html文件长这样
在这里插入图片描述
了解html常见标签
标题标签 <h+数字>数字越小文字越大 如 h1
文本段落标签 p
链接标签 a
列表标签 ul - li
表格 table
如何使用Beautiful Soup解析html
1.安装 pip install bs4
2.引入
3.解析, 获得一个实例对象,他会把html解析成一个树形结构,让搜索和修改更加容易,soup对象有非常多的方法和属性帮助我们获取自己需要的信息
4.分析自己想要的信息,避免把不相干的信息提取出来,如:找出所有class属性值为“wdk”的p标签,就可以使用soup对象的findAll方法,能根据标签属性找出所有符合要求的元素

import requests
from  bs4 import BeautifulSoup
content = requests.get("http://wdk.eatWhat.com/").text
soup = BeautifulSoup(content, "html.parser")
allWdk = soup.findAll("p", attrs={"class": "wdk"})
for wdk in allWdk:
	print(wdk.string)

在这里插入图片描述

第三步 存储和分析数据

因人而异,拿到数据想干嘛由你自己决定

所以我们只需要了解前面两个通用步骤基本上就可以完成一个爬虫开发

但是

俗话说 爬虫玩的好,牢饭吃的早
那么爬虫本身真的是一门很危险的技术吗?
技术本身是中立无罪的,就看怎么用,就像刀具不犯法,它会做出什么事情取决于使用者。
我们在使用爬虫的时候应该注意:
不要爬取公民隐私数据
不要爬取受著作权保护的内容
不要爬取国家事务,国防建设、尖端科学技术领域的内容

除此之外还要保证自己的爬虫是一个”温和“的爬虫
1.他的请求数量和频率不应该过高,否则无异于DDoS攻击(给服务器发送海量请求,让网站资源被耗尽)
2.网站如果有明显的反爬限制,比如登录、验证码等,不要强行突破
3.查看网站的robots.txt文件了解哪些内容可以被爬取,比如:https://wdk.eatWhat.com/robots.txt

如何入狱?
别听劝

  • 24
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值