# Author:Nimo_Ding
'''
目标:
借助cookies的相关知识,使用Python登录小说网站,用代码的形式对热榜上的小说进行推荐。
网站地址:https://www.xslou.com/
小说楼的排行榜页:https://www.xslou.com/top/allvisit_1/
'''
import requests
from bs4 import BeautifulSoup
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
}
session = requests.session()
def login():
login_url='https://www.xslou.com/login.php'
login_data = {
'username': '***',
'password': '***',
'action': 'login'
}
session.post(login_url,headers=headers,data=login_data)
cookies=session.cookies
def stories():
stories_url='https://www.xslou.com/top/allvisit_1/'
res=requests.get(stories_url,headers=headers)
res.encoding='gbk'
soup=BeautifulSoup(res.text,'html.parser')
a=soup.find_all('ul',class_='update')
books = {}
for i in a:
x1=i.find(class_='up2').find('a')['href']
x=''.join(list(filter(str.isdigit,x1))) # 提取链接中的数字,即id
y=i.find(class_='up2').text
books[x]=y
return books
def vote():
id=input('请输入要推荐的书籍id')
vote_url = 'https://www.xslou.com/modules/article/uservote.php?'+str(id)
res=session.get(vote_url,headers=headers)
res.encoding='gbk'
if res.status_code==200:
soup=BeautifulSoup(res.text,'html.parser')
print(soup.find_all('div',class_='blocktitle')[0].text)
print(soup.find_all('div',class_='blockcontent')[0].text)
def main():
login()
print('-------请查看热门小说-------')
for k,v in stories().items():
print(k,v)
vote()
main()