爬取郑州大学图书馆图书信息

图书馆链接
要在校园网情况下运行。否则没有权限

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()

你可能感兴趣的:(爬爬爬虫,爬虫,python)