首页 > 编程语言 >Python爬取意林杂志所有期刊文章

Python爬取意林杂志所有期刊文章

时间:2022-12-28 17:34:35浏览次数:38  
标签:content Python self list 爬取 url html str 意林


可能很多人对这个意林杂志比较陌生,但是对于小编来说,那可是满满的回忆。记得我们上中学那时候读过的意林,那可是一本接着一本,其中有很多令人感动的故事,一直被温暖,被治愈。


接下来让我们来看看如何使用爬虫,爬取所有的杂志内容,目标网站:

https://www.yilinzazhi.com/


爬虫代码:

# coding:utf-8
# __auth__ = "maiz"
import requests
from lxml import etree


class Zazhi:
def __init__(self):
self.url = 'https://www.yilinzazhi.com/'
self.item = {}
self.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"}


def parse_url(self,url):
response = requests.get(url=url,headers=self.headers)
return response.content.decode('utf-8',errors='ignore')


def handle_html_str(self,html_str):
html = etree.HTML(html_str)
return html


def get_list_url(self,html_str):
"""
:param html_str: 前端页面的html字符
:return: list_url: 20xx 年 x 期的列表url
"""
list_url = []
html = self.handle_html_str(html_str)
div_list = html.xpath("//td[@class='time']")
for div in div_list:
list_url.append(r"https://www.yilinzazhi.com/" + div.xpath("./a/@href")[0])
return list_url


def get_title_list_url(self,list_url):
"""
:param list_url: 20xx 年 x 期的列表url
:return: content_url_list 内容页url列表
"""
content_url_list = []
for url in list_url[:60]:
print(url)
base_url = url.replace("index.html","")
html_str = self.parse_url(url)
html = self.handle_html_str(html_str)
div_list = html.xpath("//span[@class='maglisttitle']")
for div in div_list:
content_url_list.append(base_url + div.xpath("./a/@href")[0])
return content_url_list


def end(self,content_url_list):
"""
:param content_url_list: 内容页url列表
:return:
"""
for content_url in content_url_list:
print(content_url)
self.item['content_url'] = content_url
str = self.parse_url(content_url)
html = self.handle_html_str(str)
self.item['title'] = html.xpath("//div[@class='blkContainerSblk collectionContainer']/h1/text()")[0]
content_list = html.xpath("//div[@class='blkContainerSblkCon']//p//text()")
content = "".join(content_list)
content_ = content.replace("\u3000\u3000","")
self.item['content'] = content_
with open('意林合集.txt', 'a', encoding='utf-8') as fw:
fw.writelines("{}\n{}\n\n\n".format(self.item['title'], self.item['content']))
print("{}保存成功".format(self.item['title']))


def run(self):
str = self.parse_url(self.url)
list_url = self.get_list_url(str)
content_url_list = self.get_title_list_url(list_url)
self.end(content_url_list)


if __name__ == '__main__':
zazhi = Zazhi()
zazhi.run()



标签:content,Python,self,list,爬取,url,html,str,意林
From: https://blog.51cto.com/u_15924937/5975833

相关文章

  • python爬取公众号链接里面的图片
    话不多说,步入今天文章的分享内容,今天给大家带来的是~~爬取微信公众号文章里面的图片。爬虫代码:#coding:utf-8#__auth__="maiz"#__date__="2021/3/27"importosimport......
  • Python中使用xpath一键获取各国国旗
    国旗是一个国家的主权意识不断增强后必然的产物,国旗是国家的一种标志性旗帜,是国家的象征。代表着一个国家的主权和民族的尊严。每个国家的国旗都由特有的颜色和图案构成,这些......
  • py爬取当当网前500畅销书,送给书荒的你
    最近和朋友聊天,讨论到读书的问题,说是读书到底有什么用?我半开玩笑的给他讲了一个故事。男孩将女孩送到宿舍楼下,看着一路上两人始终保持着的那一步的距离,男孩终于鼓起勇气,说道......
  • 使用py爬取复产后的鹅厂都在招聘哪些职位
    hello呀,各位小伙伴,今天是五月的第二天,不知道大家是在家里wifi,空调,西瓜呢,还是在拥挤的景区看着人山人海!反正小编是穿着大裤衩,坐在马路边的沙滩上,啜一口摆在身边的饮料,享受......
  • Python一键查询 ICP 备案详情
    做搜索引擎优化的都时长面临一个问题,就是网站备案到底对seo是否有影响呢,今天将为大家仔细分析网站备案,到底对SEO有没有影响?首先说下网站备案的目的、是为了防止在网上从事......
  • 使用Python的asyncio模块异步下载整站壁纸
    这篇文章主要给大家介绍关于Python中asyncio模块的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学......
  • 使用python爬取B站视频
    B站之所以火,是因为趣味与知识并存。正如一句“你在B站看番,我在B站学习”,B站还是有一些质量比较好的学习视频。当你在B站上看到喜欢的视频想保存下来时,怎么办呢?我相信很多逛B......
  • Python 爬取人人视频
    hello,小伙伴们,又见面了,距离上一次发布文章的时间,也算是久别重逢了。期间也发生了很多的事情,导致博文断更,也是笔者不愿意的,但是确实是比较忙,不再过多赘述,希望大家能够体谅。......
  • Python爬取快手博主所有视频
    随着互联网经济的快速发展和自媒体行业的普及,越来越多的视频创作者加入了短视频平台,不仅快速的推动了短视频平台行业的发展,也给大众带来了更多新鲜有趣的知识和内容。据最新......
  • sublime安装REPL无法执行python3.7版本
    一、下载sublime最新版本地址:SublimeText-TextEditing,DoneRight单击DOWNLOADFORWINDOWS需要等一会儿自己就下载了。  安装就是下一步就可以了。二、安装......