TZ : 学习是不断进步的阶梯

一 : 爬虫简介

网络爬虫(又被称为网页[蜘蛛],网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫.

爬虫原理:

1.首先确定需要爬取的网页UR地址
2.通过HTTP/HTTPS协议来获取对应的HTML页面
3.提取页面有用的数据

爬虫的分类
  • 通用爬虫 :

通常来说就是搜索引擎,尽可能把互联网上的网页下载下来,放到自己的本地服务器形成备份,再对这些网页做相关处理,提取关键字,去除广告,最后提供一个用户检索接口.
通用爬虫需要遵守Robots协议规则,协议中会指明爬虫可以爬取网页的权限,大型搜索引擎都会遵守.

  • 聚焦爬虫 :

面向用户需求爬虫,会针对某种特定的内容爬去信息,而且保证信息和需求尽可能相关.

二 : 抓包工具

Charles其实是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的。

https设置

1.安装SSL证书

ssl证书

2.证书设置成永久信任

信任证书

3.添加网站

选择

在add ->后分别设置 /

设置

手机抓包在这里就不说了,很简单网上有很多,如果找不到,评论区留言,我会单独给你讲解.

三 : urllib基本操作

User-Agent 是爬虫和反爬虫重要的一个步骤,反爬虫可以通过这个属性来过虑掉一批爬虫访问,所以们要模拟这个属性

GET爬去普通网页
# Author:TianTianBaby

import ssl
ssl._create_default_https_context = ssl._create_unverified_context
import urllib.request as  myurllib
linkUrl = 'https://www.baidu.com/'


#构造headers  
ua_headers = {

    "User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
}
urlRequest = myurllib.Request(linkUrl,headers=ua_headers)

#向指定的url 地址发送请求,并返回服务器响应的类文件对象
response = myurllib.urlopen(urlRequest)

#服务器返回的类文件对象 支持 python 文件对象的操作方法
#read() 方法是读取返回文件全部内容,返回字符串
html = response.read()
#打印响应内容
print(html)

#返回请求的响应码 成功返回200 ,4开头表示 服务器页面问题 , 5 开头表示服务器本身问题
print(response.getcode())

##返回 数据实际的url, 防止重定向
print(response.geturl())

#返回服务器响应的HTTP报头
print(response.info())

POST爬去普通网页
ua_headers = {

    "User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
}

url = "http://wz.kulehu.com/app/index.php?i=1&c=entry&do=search_school&m=ted_users"

dic  = {

"school_name":"沈阳市"

}
data = parse.urlencode(dic).encode()
request = myurllib.Request(url,data=data,headers=ua_headers)
response = myurllib.urlopen(request)
myjosn = response.read()

print(myjosn)

四 : Cookie模拟登录

通过抓包工具,找到一个登录的网页的Cookie信息进行模拟登录,有不知道Cookie是个什么东西的小伙伴点这里–>点我了解,模拟登录就以简书为例子了.
我先登录一下简书,找出Cookie进行模拟登录.

# Author:TianTianBaby
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
import  urllib.request as myurllib


url = "https://www.jianshu.com/users/077936bc1760/following"
headrs = {

"Host":"www.jianshu.com",
"Connection":"keep-alive",
"Accept":"text/html, */*; q=0.01",
"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
"Referer":"https://www.jianshu.com/users/077936bc1760/following",
"Accept-Language":"zh-CN,zh;q=0.9",
"Cookie":"这是我的秘密要用你自己的哦",
}
request = myurllib.Request(url,headers=headrs)
response = myurllib.urlopen(request)
print(response.read().decode())

文章来源于互联网:爬虫篇-初识爬虫之urllib操作

发表评论