从维基百科通过关键字爬取指定文本内容

通过输入搜索的关键字,和搜索页数范围,爬出指定文本内内容并存入到txt文档。代码逐行讲解。

使用re、res、BeautifulSoup包读取,代码已测,可以运行。txt文档内容不乱码。

python 复制代码
import re
import requests
from bs4 import BeautifulSoup

titles = []                                                             #存放文档标题
urls = []                                                               #存放每个文档链接

keyword = input("请输入想要查找的关键字:")                              
pagenum = input("请输入想要查找的页数:")                                        
txt_name = keyword + ":前" + pagenum + "页内容.txt"                        

with open(txt_name,'w',encoding='utf-8') as f:                             # 创建txt文件
    f.write(txt_name + '\r')                                               # 将文件名写入
    f.close()

# 每页内容单独爬取
for i in range(1, int(pagenum)+1):                               
    html = "http://www.ofweek.com/newquery.action?keywords="+keyword+"&type=1&pagenum=" + str(i)         # 根据关键词和页数生成链接

    resp = requests.get(html)                             # get获取数据,访问拼接后的url                                    
    resp.encoding = 'gb18030'                             # 读取中文时不会出现乱码
    content = resp.text                  # 拿到网站的数据,捕获到的网页内容给content变量
    
    # html文件解析,解析响应的文件内容,html.text 是 HTML 文档的源代码,
    # 'html.parser' 是解析器,用于指定如何解析 HTML 文档
    bs = BeautifulSoup(content,'html.parser')
    #每个标题都存在类名为no-pic的li标签里面
    for news in bs.select('div.zx-tl'): 
        url = news.select('a')[0]['href']                     # 提取文章链接
        urls.append(url) 
        title = news.select('a')[0].text                      # 提取文章标题
        titles.append(title)

for i in range(len(urls)):                                    # 遍历每篇文章的链接
    resp = requests.get(urls[i])
    resp.encoding='gb18030'
    content = resp.text
    bs = BeautifulSoup(content,'html.parser')
    #文章的内容是存在类名为artical-content的div块里面
    page_content = bs.select('div.artical-content')[0].text
    with open(txt_name,'a',encoding='utf-8') as f:            # 写入txt文件
        f.write("\n"+titles[i]+page_content)
        f.close()

print("文件保存成功!")
相关推荐
Pocker_Spades_A3 小时前
Python快速入门专业版(五十四):爬虫基石:HTTP协议全解析(从请求到响应,附Socket模拟请求)
爬虫·python·http
B站计算机毕业设计之家1 天前
Python招聘数据分析可视化系统 Boss直聘数据 selenium爬虫 Flask框架 数据清洗(附源码)✅
爬虫·python·selenium·机器学习·数据分析·flask
傻啦嘿哟1 天前
用Redis实现爬虫URL去重与队列管理:从原理到实战的极简指南
数据库·redis·爬虫
雪碧聊技术1 天前
爬虫是什么?
大数据·爬虫·python·数据分析
小白学大数据1 天前
集成Scrapy与异步库:Scrapy+Playwright自动化爬取动态内容
运维·爬虫·scrapy·自动化
深蓝电商API1 天前
异步爬虫的终极形态:aiohttp + asyncio 实现万级并发实践
爬虫·python·aiohttp
电商API_180079052471 天前
从客户需求到 API 落地:淘宝商品详情批量爬取与接口封装实践
大数据·人工智能·爬虫·数据挖掘
深蓝电商API1 天前
爬虫性能压榨艺术:深入剖析 Scrapy 内核与中间件优化
爬虫·scrapy
傻啦嘿哟2 天前
爬虫数据去重:BloomFilter算法实现指南
爬虫·算法
Jonathan Star2 天前
网站识别爬虫(包括以浏览器插件形式运行的爬虫)主要通过分析请求特征、行为模式等差异来区分人类用户和自动化程序
运维·爬虫·自动化