美文网首页
lab02: 爬七猫一部小说

lab02: 爬七猫一部小说

作者: 水水壶 | 来源:发表于2022-10-27 12:35 被阅读0次

    爬这个七猫小说,只能爬到19章,后面的是需要会员的没有办法爬,问题就是我爬完第一章之后要爬第二张,那我的爬的网址需要变,我开始分析第一章网址(https://www.qimao.com/shuku/222767-16480917400001/)和第二章网址(https://www.qimao.com/shuku/222767-16480917400002/)的规律,发现就是后面的数字加1,第三章、第四章也是符合这个规律,所以我写了一个循当第一章爬完之后就 把后面这个数16480917400001+1,前五章都可以顺利爬下来,到第六章就报错了,从第六章就不是按着这个规律来的了。最后我是先爬第一章找到页面下一章的位置,然后获取 a 标签 href 属性的链接,就是下一章的链接.

    # lab02: 爬一整部小说(https://www.qimao.com/reader/index/1648167/)
    # 问题: 小说阅读页面点右键不显示"检查"
    # 解决方案:在浏览器窗口的右上方选择Chrome菜单, 然后选择工具 > 开发者工具
    
    # 先把源代码
    # 找到小说段落,存储段落
    # 判断是否有下一章,有 点击下一页,爬取下一页源代码,
    
    import requests
    from bs4 import BeautifulSoup
    
    
    def fetch_data(url):
        headers = {
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
        }
        original_data = requests.get(url, headers=headers)
        with open('lab02.html', 'w') as f:
            f.write(original_data.text)
    
    
    def parse_data():
        with open('lab02.html') as f:
            original_data = f.read()
            article_soup = BeautifulSoup(original_data, 'html.parser')
            article = article_soup.find("div", attrs={"class": "chapter-detail-article" })
            next_page = article_soup.find("a", attrs={"class": "qm-btn inline-block important large"})
        return [article, next_page]
    
    
    def handle_data():
        print('111')
        resp = parse_data()
        print(resp)
        with open('lab02.csv', 'a') as f:
            f.write(resp[0].text)
            f.write('\n')
            page_link = resp[1]['href']
            print('链接:{}:'.format(page_link))
        return page_link
    
    
    if __name__ == '__main__':
        page_link = '/shuku/1648167-16517458210001/'
        while True:
            url = 'https://www.qimao.com{}'.format(page_link)
            fetch_data(url)
            parse_data()
            page_link = handle_data()
            print(page_link)
            if page_link == None:
                break
    
    
    

    相关文章

      网友评论

          本文标题:lab02: 爬七猫一部小说

          本文链接:https://www.haomeiwen.com/subject/mhcttdtx.html