全代码分析
第一部分:
import requests
from bs4 import BeautifulSoup
session = requests.session()
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.193 Safari/537.36'
}
#header可以从All或者XHR中任意一条中找到,都是一样的
第二部分:
def sign_in():#带参数请求登陆
url_login = 'https://xiaoke.kaikeba.com/example/wordpress/wp-login.php?action=postpass'
data_login = {'post_password':'xiaoke123',
'Submit': '提交'
}
res=session.post(url_login, headers=headers, data=data_login)
print(res.status_code)
url_login和data_login都是第一次输入密码后登陆进去的页面中找到的
第三部分
def get_content():
url='https://xiaoke.kaikeba.com/example/wordpress/2019/11/07/互联网圈炸锅啦!有人要帮你加薪啦!/'
#url='https://xiaoke.kaikeba.com/example/wordpress/2019/11/07/%e4%ba%92%e8%81%94%e7%bd%91%e5%9c%88%e7%82%b8%e9%94%85%e5%95%a6%ef%bc%81%e6%9c%89%e4%ba%ba%e8%a6%81%e5%b8%ae%e4%bd%a0%e5%8a%a0%e8%96%aa%e5%95%a6%ef%bc%81/'
res_article = session.get(url,headers=headers)
# 获取数据
print(res_article.status_code)
#判断获取结果是否为空
bs_article = BeautifulSoup(res_article.text,'html.parser')
#解析数据
article= bs_article.find('div',class_='entry-content').text
print(article)
- 因为html里面有我们想要的内容,所以用bs解析,url直接从顶端接口处获得,两种url是一样的
- res_article=session.get(), 不能使用requests.get(), 否则会出现:
这是一篇受密码保护的文章,您需要提供访问密码:
密码:
说明session可以保存之前登陆输入的密码
第四部分:
sign_in()
get_content()
完整版代码:
import requests
from bs4 import BeautifulSoup
session = requests.session()
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.193 Safari/537.36'
}
def sign_in():#带参数请求登陆
url_login = 'https://xiaoke.kaikeba.com/example/wordpress/wp-login.php?action=postpass'
data_login = {'post_password':'xiaoke123',
'Submit': '提交'
}
res=session.post(url_login, headers=headers, data=data_login)
print(res.status_code)
def get_content():
#url='https://xiaoke.kaikeba.com/example/wordpress/2019/11/07/互联网圈炸锅啦!有人要帮你加薪啦!/'
url='https://xiaoke.kaikeba.com/example/wordpress/2019/11/07/%e4%ba%92%e8%81%94%e7%bd%91%e5%9c%88%e7%82%b8%e9%94%85%e5%95%a6%ef%bc%81%e6%9c%89%e4%ba%ba%e8%a6%81%e5%b8%ae%e4%bd%a0%e5%8a%a0%e8%96%aa%e5%95%a6%ef%bc%81/'
res_article = session.get(url,headers=headers)
# 获取数据,传入数参数,第一个为url,第二个为请求头
print(res_article.status_code)
#判断获取结果是否为空
bs_article = BeautifulSoup(res_article.text,'html.parser')
#解析数据
article= bs_article.find('div',class_='entry-content').text
# 查找最小父级标签
print(article)