爬虫基础(基础知识)

1、爬虫介绍
爬虫是一种按照一定规则,自动地抓取万维网信息的程序或者脚本。
通用网络爬虫又称为全网网络爬虫,爬取对象是从一些种子URL扩展到整个WEB,各种搜索引擎是一个典型的例子。
聚焦(主题)网络爬虫指有目的性的进行爬虫,根据需求按需采集。
深度网络爬虫:有些信息需要提交参数才可以获取隐藏数据。
增量式网络爬虫:对曾经爬取过的网站但是又更新的网站进行爬取,可以在一定程度上保证爬取的页面是尽可能新的页面
爬取得到的数据的分类有:用户产生的数据:如WeChat、QQ等;政府的数据:中国政府数据网;数据公司管理的数据:聚合数据;自主进行爬取的数据。

2、基础知识
robots:告知那些爬虫站点可以访问,哪些站点不可以访问(https://www.baidu.com/robots.txt)
反爬措施:手机短信验证码、IP封禁、文字混淆、静态验证码(比如一张图片)、动态验证码(动态图像),js加密(点击加密、滑块验证、点选图片、滑动图片缺口、cookie身份验证、滑动轨迹、防盗链)。

http和https:http:超文本传输协议,特点:无状态,无保存(就是客户端每次请求服务器服务都是相互独立的),port=80。
user agent:用户代理程序,就是请求服务器服务的客户端。
https是http的升级版本,增加一个SSL安全层协议。特点是 有保存,有记录。port = 443

url组成
http://ww.baidu.com:80/s?wd = qq
URL = 协议 + 域名 + 端口号(可隐藏) + 查询路径 + 查询参数 + 锚点(页面定位,链接导航)
URL中可能带有随机值random = …这些随机值可以省略

静态数据和动态数据
静态数据:所以的数据全部保存在页面中,html原码 css js data
动态数据:通过二次加载而得到的数据,指一个网页中的数据不保存在其源码中,而是通过该页面通过接口进行获取,特点是同一个网址可以包含很多不同数据的页面。

chrome调试
Elements:包含静态数据和动态数据,所以Elements中包含的数据,网页源码中不一定有。

3、python的文件操作
文件操作:
相对路径: . 当前目录下,. . 父级目录下,./test.txt,表示当前目录下的test.text文件,. ./test.txt表示父目录下的text.txt文件。
绝对路径:略
操作符:r (read) : 只读文件;w(write) : 写入文件,先清空再写入;a(append): 写入文件,追加写入;rb : 二进制读取;wb : 二进制写入,先清空再写入;(写入媒体文件)ab : 二进制写入,追加写入。

4、csv文件读写

import csv
file = open("C:/Users/孤桥/Desktop/项目/test.csv","w",newline = "")
file_csv = csv.writer(file)
file_csv.writerow([1,2,3,"周三",5,6])
for i in range(10):
    file_csv.writerow([1,2,3,4,5,6])
file.close()
list中的每个元素为一个格子

5、json数据

json数据与python中的dict有点类似,可以粗略的认为是加引号的dict(不完全对,不过遇到的多数问题是这样的)。

import json
js1 = json.dumps(dic) #字典转json
dic1 = json.loads(js1)#json转dict

6、常用的两种请求方式(get、post)
get请求:简单的请求页面,可以直接获取页面内容。
post:需要提交部分信息才可以获得页面内容 如:登录、注册等。
7、动态数据爬取。
对于动态数据,在XHR里的,点击每项的preview里可以看该项信息,在Header中可以看该链接的请求方法和URL,请求该url获取信息
8、静态数据,静态数据出现在网页的HTML原码中,获取页面源码,然后分析信息所在的标签,通过bs4来获取信息。

9、HTML的基础知识

HTML基础知识
一些标签:
1<html>...</html>网页开始标志
2<hi>...</hi>i级标签(1<=i<=6) 
3<ul>...</ur>列表,无序的列表。里面包含若干<li>标签,<li>标签是无序的小标题
4<div>...</div>是一个自定义的容器,里边可以包含若干个其他标签
5<b>...</b>加粗
6<br>标签,换行
7"   " 单独出现可以直接表示内容
8<p>...</p>标签,指的是段落标签
9<a href=url>内容</a>可以设置跳转连接,点击内容会跳转
10...

一些标签属性:
1<div id = "...",style = "...">  id在当前页面中是一个唯一的值,
2<ul class = "..." >  

bs4:可以从XML、HTML中提取数据
bs可以将复杂的HTML转换为树形结构,每个节点都是Python对象,所有对象可归纳为
4种,Tag,NavigableString,Comment
其中Tag指的是html的标签,就是上边提到的

10、try–except语句

try:
	...
except Exception as e:
	print(e)#可以打印出发生的错误,打印之后可继续往下运行
如果说try包含的语句有错,则会执行except中的内容
raise

11、OS创建文件夹

#创建文件夹
import os
print(os.path.abspath(__file__))#输出当前文件所在文件路径(绝对)
os.mkdir(path) #可以是绝对路径,也可以是相对路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值