• 回答数

    3

  • 浏览数

    189

吃喝玩乐nnn
首页 > 职称论文 > python爬取知网论文主题

3个回答 默认排序
  • 默认排序
  • 按时间排序

kimiko范范

已采纳

一、使用的技术栈:爬虫:python27 +requests+json+bs4+time分析工具: ELK套件开发工具:pycharm数据成果简单的可视化分析1.性别分布0 绿色代表的是男性 ^ . ^1 代表的是女性-1 性别不确定可见知乎的用户男性颇多。二、粉丝最多的top30粉丝最多的前三十名:依次是张佳玮、李开复、黄继新等等,去知乎上查这些人,也差不多这个排名,说明爬取的数据具有一定的说服力。三、写文章最多的top30四、爬虫架构爬虫架构图如下:说明:选择一个活跃的用户(比如李开复)的url作为入口url.并将已爬取的url存在set中。抓取内容,并解析该用户的关注的用户的列表url,添加这些url到另一个set中,并用已爬取的url作为过滤。解析该用户的个人信息,并存取到本地磁盘。logstash取实时的获取本地磁盘的用户数据,并给elsticsearchkibana和elasticsearch配合,将数据转换成用户友好的可视化图形。五、编码爬取一个url:解析内容:存本地文件:代码说明:* 需要修改获取requests请求头的authorization。* 需要修改你的文件存储路径。源码下载:点击这里,记得star哦!https : // github . com/forezp/ZhihuSpiderMan六、如何获取authorization打开chorme,打开https : // www. zhihu .com/,登陆,首页随便找个用户,进入他的个人主页,F12(或鼠标右键,点检查)七、可改进的地方可增加线程池,提高爬虫效率存储url的时候我才用的set(),并且采用缓存策略,最多只存2000个url,防止内存不够,其实可以存在redis中。存储爬取后的用户我说采取的是本地文件的方式,更好的方式应该是存在mongodb中。对爬取的用户应该有一个信息的过滤,比如用户的粉丝数需要大与100或者参与话题数大于10等才存储。防止抓取了过多的僵尸用户。八、关于ELK套件关于elk的套件安装就不讨论了,具体见官网就行了。网站:https : // www . elastic . co/另外logstash的配置文件如下:从爬取的用户数据可分析的地方很多,比如地域、学历、年龄等等,我就不一一列举了。另外,我觉得爬虫是一件非常有意思的事情,在这个内容消费升级的年代,如何在广阔的互联网的数据海洋中挖掘有价值的数据,是一件值得思考和需不断践行的事情。

313 评论

南京1942

唔可能是你没有登录成功啊

因为发现-知乎这个链接是不用登录就能抓的

但是这个知乎没有登录不行

看了下知乎登录不是这么简单的你没有登录成功

274 评论

小璇璇APPLE

1 问题描述

起始页面 ython 包含许多指向其他词条的页面。通过页面之间的链接访问1000条百科词条。

对每个词条,获取其标题和简介。

2 讨论

首先获取页面源码,然后解析得到自己要的数据。

这里我们通过urllib或者requests库获取到页面源码,然后通过beautifulsoup解析。

可以看到,标题是在

标签下的。

可以看出,简介是在class为lemma-summary的div下的。

可以看出,其他词条的格式都遵循hcom/item/xxx的形式

3 实现

# coding=utf-8from urllib import requestfrom bs4 import BeautifulSoupimport reimport tracebackimport timeurl_new = set()url_old = set()start_url = 'httpm/item/python'max_url = 1000def add_url(url):if len(url_new) + len(url_old) > 1000:        returnif url not in url_old and url not in url_new:(url)def get_url():url = ()(url)    return urldef parse_title_summary(page):soup = BeautifulSoup(page, '')node = ('h1')title = = ('div', class_='lemma-summary')summary =    return title, summarydef parse_url(page):soup = BeautifulSoup(page, '')links = ('a', href=(r'/item/'))res = set()baikeprefix = ''for i in links:(baikeprefix + i['href'])    return resdef write2log(text, name='d:/'):with open(name, 'a+', encoding='utf-8') as fp:('\n')(text)if __name__ == '__main__':(start_url)    print('working')time_begin=()count = 1while url_new:url = get_url()        try:resp = (url)text = ().decode()write2log('.'.join(parse_title_summary(text)))urls = parse_url(text)            for i in urls:add_url(i)            print(str(count), 'ok')count += 1except:()            print(url)time_end=()    print('time elapsed: ', time_end - time_begin)    print('the end.')

输出结果

working1 ok略983 ok984 oktime elapsed:   end.

将urllib替换为第三方库requests:

pip install requests

略if __name__ == '__main__':(start_url)    print('working')time_begin = ()count = 1while url_new:url = get_url()        try:            with () as s:resp = (url)text = ()  # 默认'utf-8'write2log('.'.join(parse_title_summary(text)))urls = parse_url(text)            for i in urls:add_url(i)            print(str(count), 'ok')count += 1except:()            print(url)time_end = ()    print('time elapsed: ', time_end - time_begin)    print('the end.')

输出

略986 ok987 ok988 ok989 oktime elapsed:   end.

一个通用的爬虫架构包括如下四部分:

281 评论

相关问答

  • python论文爬

    为了做到更优雅,这次抛弃了urllib库的引用,使用requests和beautifulsoup搭配的方式进行 首先构建一个请求并且响应它然后呢到上找一篇文

    轻舞飞扬舞翩跹 4人参与回答 2023-12-07
  • 爬取中国知网论文数据

    知网中的外文文献大多都是摘要,知网和外文文献机构只是合作关系对外文文献只收录了摘要,并没有把全文收录到知网中。所以,下载外文文献最有效的方法还是去文献来源数据库

    風雨飘零 3人参与回答 2023-12-11
  • python知网论文批量下载

    问题一:中国知网了文件怎样批量下载 明显不能批量下载,所有文献数据库都是禁止批量下载。容易被禁止使用或追究责任。需要合理使用。 问题二:中国知网:[

    贪吃女王Grief 3人参与回答 2023-12-12
  • 数据爬取毕业论文

    要看你什么论文了,而且还要根据你自己论文的主题和对象以及论文的信息来看的,找的话很难找到51调查网上可以帮你做你自己想要的数据,然后你把调查什么方面的东西和信息

    木糖不纯 7人参与回答 2023-12-06
  • 中国知网论文爬虫

    作为学生,我们平时要收集大量的文献资料来阅读,尤其是写论文的时候需要文献作为参考,可是知网上面的文献一般都很难下载下来,不过在知网上面免费下载论文也还是有办法。

    恋上这个冬 3人参与回答 2023-12-10