day01爬虫三部曲

一、爬虫的基本原理
1.什么是爬虫
爬虫就是爬取数据
2、什么是互联网
由一堆网络设备,把一台台计算机互联到一起称之为互联网
3、互联网建立的目的
数据的传递与数据共享
4、什么是数据
例如:
电商平台的商品信息
12306,票务信息
12306,票务信息
5、什么是上网
普通用户:
打开浏览器---->输入网址
----->往目标主机(服务器)发送请求
----->返回响应数据
----->把数据渲染到浏览器中
爬虫程序:
模拟浏览器
-->往目标主机发送请求
-->返回响应数据
-->解析并提取有价值的数据
-->保持数据(文件写入本地、持久化到数据库)
6、爬虫的全过程:
1.发送请求(请求库:Requests/Selenium)
2.获取响应数据
3.解析数据(解析库: BeautifulSoup4)
4.保持数据(存储库:文件保存/MongoDB)
总结:假如互联网中的数据比喻成一座宝藏,爬虫
就是在挖去宝藏

二、Requests请求库
1.安装与使用
pip3 install requests
2.分析请求流程:(模拟浏览器)
百度:
1.请求url
www.baidu.com
2.请求方式
get
post
3.响应状态码
'''


一、请求rul
http://www.xiaohaur.com/v/
二、请求方式
get
三、请求头信息
user-agent:用户代理
'''
import time
import requests
#爬虫三部曲
# 1.发送请求
def get_page(url):
response=requests.get(url)
return response

# 2.解析数据
import re
def parse_index(html):
#findall 匹配所有
#re.findall('正则匹配',‘文本匹配’,'匹配模式')
#re.S对全部文本进行搜索匹配
# print(html)
detail_urls=re.findall(
'
'''
post 请求自动登录github:
请求URL:
https://github.com/session
请求方式:
post
请求头:
cookie
user-agent:
请求体:

'''
# 1.获取token随机字符串
'''
请求URL:
https://github.com/login
请求方式:
get
请求头:
cookie
user-agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 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; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'
}
login_res = requests.get(url=login_url, headers=login_header)
# print(login_res.text)

# 解析提取token字符串
authenticity_token = re.findall(
'',
login_res.text,
re.S
)[0]
print(authenticity_token)

#获取login页面的cookies信息
#print(type(login.res.cookies))
# print(type(login_res.cookies.get_dict()))
login_cookies=login_res.cookies.get_dict()

# 2.开始登录
'''
post请求自动登录github
请求URL:
https://github.com/session
请求方式:
post
请求头:
cookie
user-agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36
请求体:
"commit": "Sign in",
"utf8": "✓",
"authenticity_token": authenticity_token,
"login": "sdfasdf",
"password": "13165465435",
"webauthn-support": "supported"
'''
# session登陆url
session_url = 'https://github.com/session'

# 请求头信息
session_headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'
}

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

转载于:https://www.cnblogs.com/2328322824chx/p/11113992.html

你可能感兴趣的:(day01爬虫三部曲)