图书馆链接
要在校园网情况下运行。否则没有权限
import requests
import re
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.6241 SLBChan/25"
}
# sw=后是图书类别,可以自定义
url="http://fx.zzu.superlib.net/s?sw=数学&strchannel=11%2C12&size=15&isort=0&x=152_115&pages={0}"
url_list=[]
# 爬取页面的范围,这里选择2到5页
for i in range(2,6):
new_url=url.format(i)
response=requests.get(url=new_url,headers=headers).text
response=etree.HTML(response)
name_url_list=response.xpath('//*[@id="mainlist"]/div/div[2]/div/ul/li[1]/a[2]/@href')
for name in name_url_list:
new_name="http://fx.zzu.superlib.net"+name
url_list.append(new_name)
# 书名
title_list=[]
title_re='class="falv_tit" style="float: left;">\s*(.*?)\s*'
# 作者名
author_list=[]
author_re='(.*?)'
# 主题名
zhutici_list=[]
zhutici_re='主题词.*?target="_blank">(.*?)'
# 页数
yeshu_list=[]
yeshu_re='页码.*?(\d\d\d)页'
# 出版日期
time_list=[]
time_re='出版日期.*?"(\d\d\d\d.\d\d)"'
for url in url_list:
res=requests.get(url=url,headers=headers).text
c=re.findall(title_re,res,re.S)
if(len(c)==0):
continue
title_list.append(c[0])
author_list.append(','.join(re.findall(author_re, res, re.S)))
zhutici_list.append(re.findall(zhutici_re,res,re.S)[0])
a=re.findall(yeshu_re, res, re.S)
if(len(a)):
yeshu_list.append(a[0])
else:
yeshu_list.append("237")
b=re.findall(time_re,res,re.S)
if(len(b)):
time_list.append(b[0])
else:
time_list.append('2018.07')
# 结果生成text.txt文件
fp=open("test.txt",mode="w+",encoding="utf-8")
for i in range(len(title_list)):
fp.write(''.join(title_list[i].split())+' '+author_list[i]+' '+zhutici_list[i]+' '+yeshu_list[i]+' '+time_list[i]+'\n')
fp.close()