爬虫入门第一天
1 什么是爬虫
爬虫即网络机器人,可以实现网络数据的自动采集。
1.1 BS架构
即浏览器/服务器架构,浏览器输入一个URL,按下回车,浏览器向服务器发送一个请求,WEB收到请求后返回响应,然后浏览器进行渲染,看到网页页面。
1.2 HTTP
超文本传输协议
Name | 请求的名称,一般会将URL最后一部分当做名称 |
Status | 响应的状态码,这里显示200,表示响应是正常的 |
Type | 响应内容的类型.Doc是html文档的意思 |
Initiator | 请求源.用来标记请求由哪个对象或者进程发出 |
Size | 从服务器下载文件和请求的资源大小.如果是从缓存中取得资源,则该列会显示为from cache |
Waterfall | 网络请求的可视化瀑布流 |
字段 | |
---|---|
Request URL | 请求的url |
Request Method | 请求的方法 我们99%接触的都是GET和POST请求 |
Status Code | 响应状态码 |
Remote Address | 远程服务器的地址和端口 |
Referrer Policy | Referrer判别策略 |
字段 | 说明 |
---|---|
Accept | 请求报头域,用于指定客户端可接受哪些类型的信息 |
Accept-Language | 指定客户端可接受的语言类型 |
Accept-Encoding | 指定客户端可接受的内容编码 |
Host | 用于指定请求资源的主机IP和端口号 |
Cookie | 也有用复数形式Cookies,主要功能是维持当前访问会话,记录一些用户身份信息或者用户行为信息.可能会过期,在使用过程中也可能会通过本地js或者返回值进行更新. |
Referrer | 防盗链,用来标识这个请求是从哪个页面发过来的,服务器可以拿到这些信息做相应处理,例如来源统计或者防盗链处理. |
User-Agent | 使服务器识别客户使用的操作系统及版本,浏览器及版本等信息.咱们做爬虫的时候,加这个可以伪装成浏览器 |
Content-Type | 表示请求中的媒体类型信息 |
2 request请求实现
import requests
from bs4 import BeautifulSoup
#1.找到url
url = ""
#准备resquest headers请求头 冒号开头的不要写 content-length不要写
headers = {}
#发送请求
response = requests.get(url,headers=headers)
soup = BeautifulSoup(response.text,"html.parser")#
plist = soup.find('div',class_='chapter_content').find_all('p')#属性标签
f = open('文件名.txt','w',encoding='utf-8')#写方法。编码为utf-8
for p in plist:
text = p.text
f.write(text.replace('\xa0',' ')+'\n')
f.close()