简单爬虫

本文介绍了一个简单的糗百爬虫实现过程,通过使用BeautifulSoup解析网页,抓取糗事百科的文字内容,并将其保存到本地文件中。文章还讨论了如何处理多页爬取时可能出现的503错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单的爬虫

爬糗百,需要的工具:BeautifulSoup,安装自己百度

先从爬一页开始:

首先,要伪装成浏览器,简单的是添加一个headers,我把它封装成一个函数:

def getHTML(url):  
    headers = {'User-Agent': 'User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML,      like Gecko) Chrome/56.0.2924.87 Safari/537.36'}  
    req = urllib.request.Request(url, headers=headers)  
    return urllib.request.urlopen(req)

接着开始爬,我只爬text的

crawl_url = 'https://www.qiushibaike.com/text'

res = BeautifulSoup(getHTML(crawl_url),'html.parser',from_encoding='utf-8')

找出固定的标签:div class="content",放入contentext中

contenttext = res.find_all(name="div",attrs={"class":"content"})

最后写入txt文档中: 控制每行字数100,添加序号:

i = 1
for li in contenttext:
    f.write(str(i)+'. ')
    i += 1
    for lj in range(0,len(li.get_text().strip()),100):
        f.write(li.get_text().strip()[lj:lj+100]+'\n')
        f.write('\n')
f.close()

最后补充:

要爬多页时,写个循环控制页数,需要注意的是,程序可能频繁发起请求而返回503错误,如果这样导致程序停止了那就功亏一篑了,所以想办法解决这问题,我的想法是每次请求后sleep一段时间,缺点就是时间长.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值