首页

> 期刊论文知识库

首页 期刊论文知识库 问题

python知网论文数据爬取

发布时间:

python知网论文数据爬取

#!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: Administrator # @Date: 2015-10-31 15:45:27 # @Last Modified by: Administrator # @Last Modified time: 2015-11-23 16:57:31 import requests import sys import json import re reload(sys) ('utf-8') #获取到匹配字符的字符串 def find(pattern,test): finder = (pattern, test) start = () end = () return test[start:end-1] cookies = { '_ga':'', '_za':'8d570b05-b0b1-4c96-a441-faddff34', 'q_c1':'23ddd234234', '_xsrf':'234id':'"ZTE3NWY2ZTsdfsdfsdfWM2YzYxZmE=|1446435757|15fef3b84e044c122ee0fe8959e606827d333134"', 'z_c0':'"QUFBQXhWNGZsdfsdRvWGxaeVRDMDRRVDJmSzJFN1JLVUJUT1VYaEtZYS13PT0=|14464e234767|57db366f67cc107a05f1dc8237af24b865573cbe5"', '__utmt':'1', '__utma':'', '__utmb':'', '__utmc':'51123390', '__utmz':'|utmcgcn=(referral)|utmcmd=referral|utmcct=/', '__utmv':'|2=registration_date=2028=1^3=entry_date=201330318=1'} headers = {'user-agent': 'Mozilla/ (Windows NT ; WOW64) AppleWebKit/ (KHTML, like Gecko) Chrome/ Safari/', 'referer':'', 'host':'','Origin':'', 'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8', 'Connection':'keep-alive','X-Requested-With':'XMLHttpRequest','Content-Length':'81', 'Accept-Encoding':'gzip,deflate','Accept-Language':'zh-CN,zh;q=','Connection':'keep-alive' } #多次访问之后,其实一加载时加载20个问题,具体参数传输就是offset,以20递增 dicc = {"offset":60} n=20 b=0 # 与爬取图片相同的是,往下拉的时候也会发送http请求返回json数据,但是不同的是,像模拟登录首页不同的是除了 # 发送form表单的那些东西后,知乎是拒绝了我的请求了,刚开始以为是headers上的拦截,往headers添加浏览器 # 访问是的headers那些信息添加上,发现还是拒绝访问。 #想了一下,应该是cookie原因。这个加载的请求和模拟登录首页不同 #所以补上其他的cookies信息,再次请求,请求成功。 for x in xrange(20,460,20): n = n+20 b = b+20 dicc['offset'] = x formdata = {'method':'next','params':'{"offset":20}','_xsrf':'20770d88051f0f45e941570645f5e2e6'} #传输需要json串,和python的字典是有区别的,需要转换 formdata['params'] = (dicc) # print (dicc) # print dicc circle = ("", cookies=cookies,data=formdata,headers=headers) #response内容 其实爬过一次之后就大同小异了。 都是 #问题返回的json串格式 # {"r":0, # "msg": ["

\n # \n
205K<\/div>\n #
\u6d4f\u89c8<\/div>\n # <\/span>\n
\n #

\n # # \u4ec0\u4e48\u4fc3\u4f7f\u4f60\u8d70\u4e0a\u72ec\u7acb\u5f00\u53d1\u8005\u4e4b\u8def\uff1f<\/a>\n # <\/h2>\n
\n # <\/i>\u53d6\u6d88\u5173\u6ce8<\/a>\n•<\/span>\n63 \u4e2a\u56de\u7b54\n•<\/span>\n3589 \u4eba\u5173\u6ce8\n<\/div>\n<\/div>\n<\/div>", # "
\n # \n #
157K<\/div>\n #
\u6d4f\u89c8<\/div>\n # <\/span>\n
\n #

\n # # \u672c\u79d1\u6e23\u6821\u7684\u5b66\u751f\u5982\u4f55\u8fdb\u5165\u7f8e\u5e1d\u725b\u6821\u8bfbPhD\uff1f<\/a>\n # <\/h2>\n
\n # # <\/i>\u53d6\u6d88\u5173\u6ce8<\/a>\n• # <\/span>\n112 \u4e2a\u56de\u7b54\n•<\/span>\n1582 \u4eba\u5173\u6ce8\n # <\/div>\n<\/div>\n<\/div>"]} # print #同样json串需要自己 转换成字典后使用 jsondict = () msgstr = jsondict['msg'] # print len(msgstr) #根据自己所需要的提取信息规则写出正则表达式 pattern = 'question\/.*?/a>' try: for y in xrange(0,20): wholequestion = find(pattern, msgstr[y]) pattern2 = '>.*?<' finalquestion = find(pattern2, wholequestion).replace('>','') print str(b+y)+" "+finalquestion #当问题已经访问完后再传参数 抛出异常 此时退出循环 except Exception, e: print "全部%s个问题" %(b+y) break

Python自动化可以实现,有偿服务

返照入闾巷,

模拟登录很多网站,比如知乎、微博、豆瓣,都需要登录之后,才能浏览某些内容。所以想要爬取这类网站,必须先模拟登录。比较简单的方式是利用这个网站的 cookie。cookie 相当于是一个密码箱,里面储存了用户在该网站的基本信息。在一次登录之后,网站会记住你的信息,把它放到cookie里,方便下次自动登录。所以,要爬取这类网站的策略是:先进行一次手动登录,获取cookie,然后再次登录时,调用上一次登录得到的cookie,实现自动登录。动态爬取在爬取知乎某个问题的时候,需要将滑动鼠标滚轮到底部,以显示新的回答。静态的爬取方法无法做到这一点,可以引入selenium库来解决这一问题。selenium库模拟人浏览网站、进行操作,简单易懂。

python爬取知网论文主题

一、使用的技术栈:爬虫: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的配置文件如下:从爬取的用户数据可分析的地方很多,比如地域、学历、年龄等等,我就不一一列举了。另外,我觉得爬虫是一件非常有意思的事情,在这个内容消费升级的年代,如何在广阔的互联网的数据海洋中挖掘有价值的数据,是一件值得思考和需不断践行的事情。

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

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

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

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

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.

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

用python爬取知网论文摘要

这里简单介绍一下吧,以抓取网站静态、动态2种数据为例,实验环境win10+,主要内容如下:

抓取网站静态数据(数据在网页源码中):以糗事百科网站数据为例

1.这里假设我们抓取的数据如下,主要包括用户昵称、内容、好笑数和评论数这4个字段,如下:

对应的网页源码如下,包含我们所需要的数据:

2.对应网页结构,主要代码如下,很简单,主要用到requests+BeautifulSoup,其中requests用于请求页面,BeautifulSoup用于解析页面:

程序运行截图如下,已经成功爬取到数据:

抓取网站动态数据(数据不在网页源码中,json等文件中):以人人贷网站数据为例

1.这里假设我们爬取的是债券数据,主要包括年利率、借款标题、期限、金额和进度这5个字段信息,截图如下:

打开网页源码中,可以发现数据不在网页源码中,按F12抓包分析时,才发现在一个json文件中,如下:

2.获取到json文件的url后,我们就可以爬取对应数据了,这里使用的包与上面类似,因为是json文件,所以还用了json这个包(解析json),主要内容如下:

程序运行截图如下,已经成功抓取到数据:

至此,这里就介绍完了这2种数据的抓取,包括静态数据和动态数据。总的来说,这2个示例不难,都是入门级别的爬虫,网页结构也比较简单,最重要的还是要会进行抓包分析,对页面进行分析提取,后期熟悉后,可以借助scrapy这个框架进行数据的爬取,可以更方便一些,效率更高,当然,如果爬取的页面比较复杂,像验证码、加密等,这时候就需要认真分析了,网上也有一些教程可供参考,感兴趣的可以搜一下,希望以上分享的内容能对你有所帮助吧。

应用1:关键词自动生成

核心思想是对于某个文档中的某个词,计算其在这个文档中的标准化TF值,然后计算这个词在整个语料库中的标准化IDF值。在这里,标准化是说对原始的计算公式进行了一些变换以取得更好的衡量效果,并避免某些极端情况的出现。这个词的TF-IDF值便等于TF*IDF。对于这个文档中的所有词计算它们的TF-IDF值,并按照由高到低的顺序进行排序,由此我们便可以提取我们想要的数量的关键词。

TF-IDF的优点是快捷迅速,结果相对来说比较符合实际情况。缺点是当一篇文档中的两个词的IDF值相同的时候,出现次数少的那个词有可能更为重要。再者,TF-IDF算法无法体现我词的位置信息,出现位置靠前的词与出现位置靠后的词,都被视为重要性相同,这是不正确的。存在的解决办法是对文章的第一段和每段的第一句话给予比较大的权重。

应用2:计算文本相似度

明白了对于每个词,如何计算它的TF-IDF值。那么计算文本相似度也轻而易举。我们已经计算了文章中每个词的TF-IDF值,那么我们便可以将文章表征为词的TF-IDF数值向量。要计算两个文本的相似度,只需要计算余弦即可,余弦值越大,两个文本便越相似。

应用3:自动摘要

2007年,美国学者的论文总结了目前的自动摘要算法,其中很重要的一种就是词频统计。这种方法最早出自1958年IBM公司一位科学家的论文。这位科学家认为,文章的信息都包含在句子中,有的句子包含的信息多,有的句子包含的信息少。自动摘要就是找出那些包含信息最多的句子。那么句子的信息量怎么衡量呢?论文中采用了关键词来衡量。如果包含的关键词越多,就说明这个句子越重要,这位科学家提出用Cluster的来表示关键词的聚集。所谓簇,就是包含多个关键词的句子片段。

以第一个图为例,其中的cluster一共有7个词,其中4个是关键词。因此它的重要性分值就等于(4*4)/7=。然后,找出包含cluster重要性分值最高的句子(比如5句),把它们合在一起,就构成了这篇文章的自动摘要。具体实现可以参见(O'Reilly, 2011)一书的第8章,Python代码见github。这种算法后来被简化,不再区分cluster,只考虑句子包含的关键词。伪代码如下。

类似的算法已经被写成了工具,比如基于Java的Classifier4J库的SimpleSummariser模块、基于C语言的OTS库、以及基于classifier4J的C#实现和python实现。

别折腾了,不打算往爬虫方向发展的话没必要自己学,爬虫所需要的技术非常广泛、且对深度都有一定要求,不存在“快速学会”的情况。所有那些吹快速学会爬虫的培训班都是扯淡,那些课程学完后的水平连傻瓜式爬虫工具都不如,有啥意义?再说了,你们写论文、做研究又不会需要什么很大量、很高频、很实时的数据,那些傻瓜式爬虫工具完全足够了,点几下就能出数据。

方法/步骤

爬取中国知网论文数据

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

从知网可以获悉该文献被收录在哪个数据库,如下图,可获悉该文献被收录在Elsevier(sciencedirect)数据库中:

如果你用的是学校内部IP地址进入的知网,正好学校也有Elsevier数据库资源,并且这篇文献涵盖在学校订购的资源中,是可以直接点击这个文献来源数据库链接,进入Elsevier下载该文献的,但是如果学校没有订购该文献还是下载不了的。

解决办法:用文献党下载器提供的Elsevier(sciencedirect)数据库入口进入该数据库检索下载该文献。

1、进入文献党下载器首页()下载客户端,登录客户端进入文献党下载器资源库,在资源库双击“Elsevier(sciencedirect)”名称,即可进入该数据库

2、进入Elsevier(sciencedirect)数据库首页,直接输入篇名检索文献

3、检索到该文献点击PDF完成全文下载:

一篇知网外文文献通过文献党下载器3步完成全文下载:

只要能展现在页面的 都可以

必然不可以,读取文献内容需要权限的

数据爬取毕业论文

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

研究生必备科研工具都有哪些?它们的本质作用是什么?今天想跟大家分享的三个科研工具,分别是用一下查文献,写论文降低重复率以及科研绘图,这三种小编都是自己用习惯了的,也有刚被同学安利的,总之就是希望推荐的这些有适合你的,有你能用上的。

首先是查文献的网站,这三个网站中只有拍卖需要装一下插件,其他的都能在送文献的同时,直接显示出来影响因子,方便我们筛选高分的文章。如果搜索后的文章你发现下载不了,可以用题目编号或者pmid去搜索试试看。

第二个是检查纠错,润色文章的工具秘塔写作猫,如果是需要写毕业论文或者是中英文综述,用它对论文纠错、改写、降低重复率,会特别方便一些字词错误。一些字体错误,日常不容易注意到的书面规范用词,还有用错的中英文标点符号,他都能检查到。像我自己的话,写论文会担心词汇量不够,书面表达不够标准,或者是需要给文章降重就直接用它的改写功能,高效又省事。那开始用的时候,我是把论文直接上传到写作台,用他们的网页版,习惯用word的小伙伴也可以下载插件,就能直接在word里修改了。

最后一个是科研绘图网站。它涵盖了从动物到植物,从体外到体内实验会涉及到的各种科研绘图素材,也是很多高分文章在用的绘制示意图的来源。在这个网站中,能直接在网页的操作界面上选择素材,绘图也能通过他给的各种模板修改和使用。那数据爬取之后,就是一个数据清洗和预处理的过程,这里呢给大家推荐knime,这个软件可以进行一些数据的清理和预处理的工作,操作过程,也并不复杂.

那最后,对于数据分析的过程,往往python是更好的选择,那除了python之外,同样也有一个非常简单易用的界面,更友好的集成性工具操作的软件,那就是Weka。这个软件,集成了大部分的数据挖掘和数据分析的过程,通过一些简单的简选操作就可以完成。并不需要使用拍子的编程也是非常好,用的一个工具,如果大家刚刚接触数据挖掘,可以通过这个软件来进行一些分析,来帮助你更好的了解数据分析和数据挖掘的过程。以上,就是我给大家推荐的五类研究生必备或者必备的软件工具,尤其是对于最后实证分析类的软件,都需要大家去花时间来进行学习和实践才可以掌握和应用。

毕业论文需要的数据可以从下面几个方面获取:

一、问卷调查。很多文科的同学,用问卷调查的数据比较多,这种数据比较好收集,自己设计一套问卷,去找目标人群收集数据就行了。现在有很多专门的调查问卷的网站和小程序之类的,收集这类数据就简单多了。

二、实验数据。这种数据一般理科的同学用的比较多,通过自己的实验拿到的数据也比较可靠,自己用起来也很有底气。

三、国家和政府公布的数据,这种数据大多都是月度,季度,年度数据。数据范围比较广,官方数据很有说服力,如果是做行业调查之类的很实用,而且也不需要自己收集,直接拿来就可以用,很方便。

四、就是行业数据,行业数据可能来自于行业协会,行业专业网站等等。

五、常用的数据来源网站有:

1、国家统计局,这个网站上的数据比较官方权威。

2、中国旅游研究院,适合一些旅游专业的学生。

3、产业信息网,了解不同产业的收益、市场占额等信息。

4、国土资源部,获取土地资源、矿产资源、海洋资源等自然资源的规划、管理、保护与合理利用等信息。

5、国家企业信用信息公示系统,收集企业的信用信息。

6、中国知网,阅读参考文献的网站

7、新浪财经,了解全球经济宏观数据。

文献和报告里有你需要的相关内容

相关百科

热门百科