day01 爬虫基本原理以及requests请求库

一、爬虫基本原理
1.什么是爬虫
爬虫就是爬取数据
2.什么是互联网
有一堆网络设备,把一台台的计算机互联到一起称为互联网
3.互联网建立的目的
数据的传递与数据的共享
4.什么是数据
例如:
电商平台的商品信息
链家,自如租房平台的房源信息
...
12306,票务信息
5.什么是上网
普通用户:
打开浏览器
——>输入网址
——>往目标主机发送请求
——>返回响应数据
——>把数据渲染到浏览器中
爬虫程序:
模拟浏览器
——>往目标主机发送请求
——>返回响应数据
——>解析并提取有价值的数据
——>保存数据(文件写入本地、持久化到数据库中)

6.爬虫的全过程
1.发送请求(请求库:Requests/Selenium)
2.获取响应
3.解析数据(解析库:BeautifulSoup4)
4.保存数据(存储库:文件保存/MongoDB)

总结:我们可以把互联网中的数据比喻成一座宝藏,爬虫其实就是在挖宝藏

二、requests请求库
1.安装与使用
pip3 install requests
2.分析请求流程(模拟浏览器)
-百度:
1.请求URL
2.请求方式
3.响应状态码

具体事例如下
'''
爬校花网视频:
一、请求rul
http://www.xiaohaur.com/v/
二、请求方式
    get
三、请求头信息
user-agent:用户代理
'''
 1 import time
 2 import requests
 3 #爬虫三部曲
 4 #1.发送请求
 5 def get_page(url):
 6     response = requests.get(url)
 7     return response
 8 # 2.解析数据
 9 import re
10 def parse_index(html):
11     # findall匹配所有
12     # re.findall('正则匹配规则','匹配文本','匹配模式')
13     # re.S:对所有文本进行搜索匹配
14     detail_urls = re.findall(
15         '

 

POST请求自动登录GitHub:
'''
POST请求自动登录GitHub:
   一、请求rul
       https://github.com/session
   二、请求方式
        POST
   三.请求头
       cookies
        User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
   四.请求体
      from data
      commit: Sign in
      utf8: ✓
      authenticity_token: LVyIb9FUxiI6XMain4PXzgOjKn9DzYzqdCwMvosVn+/Cht8LVgCuKjc7fbNfk5TiXf4W+6y56GmRnu1A4T0VIQ==
      login: sjdkjw
      password: 1562132
      webauthn-support: supported
'''

#获取token随机字符串
'''
1.访问登录页面获取token随机字符串
   一、请求rul
       https://github.com/login
   二、请求方式
        GET
   三.请求头
        cookies
        User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
2.解析并提取token字符串
#正则
    
'''
import requests
import re
login_url ='https://github.com/login'
#login页面的请求头信息
login_header = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}
login_res = requests.get(url=login_url,headers=login_header)
#print(login_res.text)
#解析提取token字符串
authenicity_token = re.findall(
    '',
    login_res.text,re.S
)[0]
print(authenicity_token)

# 2.开始登录github
'''
POST请求自动登录GitHub:
   一、请求rul
       https://github.com/session
   二、请求方式
        POST
   三.请求头
        cookies
        User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
   四.请求体
    from data
      commit: Sign in
      utf8: ✓
      authenticity_token: LVyIb9FUxiI6XMain4PXzgOjKn9DzYzqdCwMvosVn+/Cht8LVgCuKjc7fbNfk5TiXf4W+6y56GmRnu1A4T0VIQ==
      login: ****
      password: *****
      webauthn-support: supported
'''
#获取login页面的cookies信息
login_cookies = login_res.cookies.get_dict()
# session登录url
session_url = 'https://github.com/session'

#请求头信息
session_headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}

#请求体信息
form_data = {
    "commit": "Sign in",
    "utf8": "",
    "authenticity_token": "authenicity_token",
    "login": "****",
    "password": "*****",
    "webauthn-support": "supported"
}
session_res = requests.post(url=session_url,
                            headers=session_headers,
                            cookies=login_cookies,
                            data=form_data
                            )
with open('github1.html','w',encoding='utf-8') as f:
    f.write(session_res.text)

 

转载于:https://www.cnblogs.com/my-star/p/11113809.html

你可能感兴趣的:(day01 爬虫基本原理以及requests请求库)