requests BeautilfulSoup简单抓取古文典籍.1


网页源码,爬取书本的简介和目录:

这是简介标签内的内容:

<textarea style=" background-color:#F0EFE2; border:0px;overflow:hidden;" cols="1" rows="1" id="txtareAuthor6">《周易》
是一部中国古哲学书籍,是建立在阴阳二元论基础上对事物运行规律加以论证和描述的书籍,其对于天地万物进行性状归类,天干地支五行论,甚至精确到可以对事物的未来发展做出较
为准确的预测。https://so.gushiwen.org/guwen/book_6.aspx</textarea>

先尝试取出简介内容:

>>> url='https://so.gushiwen.org/guwen/book_6.aspx'
>>> r=requests.get(url)
>>> data=r.text
>>> p=r'<textarea[^>]*?id="txtareAuthor6">(.*?)https.*aspx*?</textarea>'
>>> r=re.findall(p,data)
>>> r
['《周易》是一部中国古哲学书籍,是建立在阴阳二元论基础上对事物运行规律加以论证和描述的书籍,其对于天地万物进行性状归类,天干地支五行论,甚至精确到可以对事物的未来
发展做出较为准确的预测。']
import requests
import re
from bs4 import BeautifulSoup

# 获取书本的信息:简介和目录列表
# demo_url:https://so.gushiwen.org/guwen/book_6.aspx
def get_book(name, url):
    book = Book(name, url)
    if url == '':
        return None
    headers = {'user_agent': 'Mozilla/5.0'}
    with requests.get(url, headers=headers) as r:
        if r.status_code != 200:
            return None
        text = r.text
        if len(text) == 0:
            return None
        soup = BeautifulSoup(text, 'lxml')
        p = r'<textarea[^>]*?id="txtareAuthor6">(.*?)https.*aspx*?</textarea>'
        ret = re.findall(p, text)
        if len(ret) > 0:
            book.title = ret[0]
        bookcont = soup.find('div', class_='bookcont')
        if bookcont == None:
            return book
        tab_bookcont = bookcont.findAll('a')
        if len(tab_bookcont) == 0:
            return book
        for tab in tab_bookcont:
            t = {'name': tab.text, 'url': tab.get('href')}
            book.index.append(t)
        return book



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值