python requests爬取必应学术

利用爬虫技术爬取文献,可以获取到必应学术上文献的文献名、作者、摘要、期刊等和参考文献和引证文献。虽然直接在必应上搜索,可以直接在在网页上看文献摘要。通过查看文献名、摘要等信息来进一步确定是否要看文献内容,但这有时是一件费力的事,需要每次点击文献,看基本信息来进一步确认是否是自己感兴趣的。然而利用爬虫可以批量下载文献,然后通过进一步筛选,得出自己感兴趣的文章。这能省下许多时间。

实例

通过正常利用浏览器在必应学术上搜索文献,打开必应学术URLhttps://cn.bing.com/academic/。打开开发者工具,切换 Network 选项卡。在输入框输入A similarity distance of diversity measure for discriminating mesophilic and thermophilic proteins,然后搜索,下面会出现许多条目点开一个看起来像是请求数据的请求。会出现它的详细信息。如下图:

详情

有请求 url ,查询参数,请求头等数据。下面给出代码来实现第一步请求。
1.首先分析分析request url,发现url是由参数构成,其参数有q、go、qs、form.其中q显而易见是查询数据。在url中是以 ‘+’将每一个单词连接的。go是什么行为,qs和form暂未知,照写就行,有如下代码:
g.png

构建请求头,主要是参数 q 变化,其它参数没变。所以构建参数q,先将文献名按空格转化为list,在利用‘+’将他们转化为字符串。
如果将r.text里的内容写入一个html文件里再打开,会发现和浏览器正常打开一样的。


s.png

2.这里需要的是必应学术的网页链接,而不是其它的网站,有时,必应学术的会在第一条,有时在下面几条中,上图是第二条。在浏览器中点击第二条,会进入详细页面,然后就可以通过正则表达式或者一些解析库获如Beautiful Soup来获取数据,这里就不在给出代码了。

这是在搜索页面窗口判断哪条数据是必应学术的,通过简单的if判断(关键词可能出错),必应url应该是这样的
/academic/profile?id=djflajd&encoded=0&v=paper_preview&mkt=zh-cn
其中id=djflajd&encoded=0&v=paper_preview&mkt=zh-cn,在ajax请求中是固定参数,故单独提出来。
for i in range(1,5):
    result = html.xpath('//*[@id="b_results"]/li[%s]/h2/a/@href' % i)
        if '/academic/' in result[0]:
            _, p_id = result[0].split('?') # 获取不变的参数
            break

3.接下来分析它的参考文献或引证文献,默认只显示10条,通过点击展示更多可以再显示10条,点击XHR可以筛选出ajax请求,(这里没有继续请求文章详细页面,而是直接构建ajax请求url)

a.png

这里经过几次分析,有几个主要参数在变化,控制加载数据行为,
参数

count 代表一次加载多少数据,默认是10,first是偏移量,代表从第几条数据开始加载。IID,SFX,是加载次数。点击一次展示更多,数字就会增加。rt,为1是代表显示参考文献,等于2是引证文献。
通过直接访问ajax请求url,可以得到以下画面
aj.png

要获取数据也就需要用解析库或者正则表达式解析数据了。代码如下:
l.png

代码有点垃圾,hhh,将就看了。。。。
结果:
r.png

其它

代码中只是简单简单实现参考文献的的爬取,不过要完整的爬取文献的文献名、作者、摘要、期刊等和参考文献和引证文献。却也不难,引证文献只需将参数rt改为2就行。其它的就利用解析库解析就行。另外,可以将参考文献,引证文献保存起来,然后在循环运行函数,让程序一直运行,把所有相关文献都爬出来了,不过这肯定就费时间了还有需要设置代理防止反爬。



python控制台动画

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,063评论 6 510
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,805评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,403评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,110评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,130评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,877评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,533评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,429评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,947评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,078评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,204评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,894评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,546评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,086评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,195评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,519评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,198评论 2 357

推荐阅读更多精彩内容