# selenium实战-微信公众号文本挖掘 **Repository Path**: gaogaolo/selenium ## Basic Information - **Project Name**: selenium实战-微信公众号文本挖掘 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-05-27 - **Last Updated**: 2021-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # selenium实战-微信公众号文本挖掘 * 作者:高智浩 * 最新撰写时间: 2021.5.27 ## 项目意义: * 熟悉selenium操作,熟悉自动化挖掘操作 * 学习如何爬取微信公众号内容 * 爬取学校官方公众号信息,了解学校咨询 ## 项目目的 1. 爬取目标公众号所有文章标题以及时间信息 2. 爬取目标公众号所有文章链接 3. 爬取目标公众号所有文章内的详细页文本内容 ## 项目结果 * 成功爬取目标公众号总计246页的所有文章内容,总计2348篇文章。爬取内容包括文章标题,时间,文章链接以及文章内的文本内容,并成功保存在本地的Excel文件。 ## 所遇问题以及解决方案 1. 在爬取公众号详细页文本内容过程中,由于不同公众号以及不同文章之间由于排版的问题,文本内容的放置路径都有所不同。在批量爬取文本内容的时候不能通过指定单一的xpath去爬取。由于本人能力有限,在遇到这一问题的时候我所采取的解决方案是在观察了目标公众号的文章html信息后,发现基本大部分的文本信息都是以text形式放置在span标签里面,所以我采取了全部爬取span标签内的text信息的方法去批量爬取文本内容。但由于这样爬取到的文本信息会掺杂很多别的无用信息,所以还要对其进行处理。解决方案看下方代码 ``` 文本内容 = [] for i in link_all: session = HTMLSession() c = session.get(i) 文本内容.append(str(c.html.xpath('//span/text()')).replace('\\xa0','').replace('\\n','').replace(' ','')) 详细页文本 = pd.DataFrame({ "文本内容":文本内容, }) 详细页文本 ``` 2.在爬取中遇到了许多操作问题都是因为对selenium的不熟悉而造成的,我的解决方案是去浏览selenium的操作指南[selenium操作指南](https://www.selenium.dev/documentation/zh-cn/webdriver/browser_manipulation/) 3.在开头这一步骤中需要在本地新建好文件夹,否则数据无法储存到本地会报错 ``` fn = { "output" : { "公众号_htm_snippets": "data_raw_src/公众号_htm_snippets_{公众号}.tsv", "公众号_df": "data_raw_src/公众号_df_{公众号}.tsv", "公众号_xlsx": "data_sets/公众号_url_{公众号}.xlsx" } \ } ``` ## 总结 * 在本次项目实践中,我学习并逐渐了解了selenium的操作以及公众号爬取,并加深了对数据挖掘这门课的理解。感谢智超老师的细心指导以及解答,同时感谢在项目完成过程中对我有帮助的同学们。