【模板】批量爬取文本信息(小说,网站新闻,资讯等)

目标:
大量爬取某网站内文本内容

适用于:网站列表内含有许多标题链接如:
在这里插入图片描述在这里插入图片描述
每个标题涵盖一个独有的链接的网站

所用技术:
requests-re-bs4库

# http://sciencechn.com/zx/zixun/
import requests
import re
from bs4 import BeautifulSoup


def getAllHtml(url):
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0'}
    try:
        r = requests.get(url, headers=headers)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        print('{}爬取出错'.format(url))   #获得url 的 HTML源码   # 获得HTML源码

def getUrlList(text):
    TitleUrl = []
    soup = BeautifulSoup(text, 'html.parser')
    titlessss = soup.find_all('li', class_="clearFix thinkTankTag")
    for i in titlessss:
        houzhuis = re.findall(r'/p/\d+\.html', str(i))
        for houzhui in houzhuis:
            wanzhengURL = 'https://www.iyiou.com' + houzhui
            TitleUrl.append(wanzhengURL)
            ttu = list(set(TitleUrl))
    return ttu

def doSave(urls):
    count = 1
    for url in urls:
        print('已完成{:.3f}'.format(count/len(urls)))
        count += 1
        r = getAllHtml(url)
        soup = BeautifulSoup(r, 'html.parser')
        biaoti = soup.find('h1')
        bt = biaoti.text #标题
        neirong = soup.find('div',id="post_description")
        nr = neirong.text
        try:
            with open(r'D:\kejiwenben\YiOuZixun.txt', 'a+') as f:
                f.write('\n\n\n\n-------------------------------------------------\n\n\n\n')
                f.write('\n')
                f.write(bt)
                f.write('\n')
                f.write(nr)
                f.write('\n')
                f.write('\n\n\n\n-------------------------------------------------\n\n\n\n')
        except:
            print('解析出错')

for i in range(1,862):
	try:
	    print('第{}页'.format(i))
	    url = 'https://www.iyiou.com/yhkj/'+ str(i) +'.html'
	    text = getAllHtml(url)
	    urls = getUrlList(text)
	    doSave(urls)
	except:
		print('看你这代码写的真垃圾')

如下是本地txt文件
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值