学习笔记之万方数据爬取

        最近帮老师做个项目,需要用到文章摘要和关键词数据集。网上找了一下,没有很适合我的,所以自己写了一个小程序爬取了一些。现在把程序记录起来,供以后学习和需要的朋友使用。

           # coding:utf-8


import urllib2
import re
import time

 #获取大的标签url
def page_link_1(url_1):
    url_list = []
    for i in range(1,500):
        url_i = url_1 + str(i)
        url_list.append(url_i)
    return url_list
    # request = urllib2.Request(url_1)
    # response = urllib2.urlopen(request).read()
    # print response

#获取大的标签下的页面中文章摘要和关键词页面的url
def page_link_2(url_2_list, user_agent):
    paper_title_dict = {}
    headers = {'User_Agent': user_agent}
    i = 1
    for url_i in url_2_list:
        print 'the i_th page:%d' %i
        i += 1
        request = urllib2.Request(url_i, headers=headers)
        html = urllib2.urlopen(request).read()
        title = re.findall(r'<div class="sortby_div">(.*?)<p class="pager_space">',html, re.I|re.S)
        if len(title) != 0:
            title_list = re.findall(r'<li class="title_li">(.*?)</li>', title[0], re.I|re.S)
            for each_title in title_list:
                each_title_1 = re.findall(r'class="abs_img"></a>(.*?)</a>', each_title, re.I|re.S)[0]
                each_title_2 = re.findall(r'''<a href='(.*?)' target="_blank">(.*)''', each_title_1,re.I|re.S|re.L)[0]
                paper_title_dict[each_title_2[1]] = each_title_2[0]
        else:
            continue
        time.sleep(2)
    return paper_title_dict

#找到文章的摘要和关键词
def page_link_3(url_3_dict):
    paper_list = []
    for each_title in url_3_dict:
        abstract_and_keywords = []
        request = urllib2.Request(url_3_dict[each_title])
        response = urllib2.urlopen(request).read()
        abstract_1 = re.findall('<div id="completeAbstract" style="display: none">(.*?)<p id="collapse">', response,
                              re.I | re.S)
        if len(abstract_1) == 0:
            continue
        abstract = abstract_1[0].strip()
        abstract_and_keywords.append(abstract)


        keywords = re.findall('<t>关键词</t>(.*?)</tr>', response, re.I | re.S)[0]
        keywords_list = re.findall('<a href=(.*?)>(.*?)</a>', keywords, re.I | re.S | re.M)
        for each in keywords_list:
            string = re.findall('<(.*)>', each[1], re.I | re.S)
            if len(string) == 0:
                abstract_and_keywords.append(each[1].strip())
        paper_list.append(abstract_and_keywords)
        time.sleep(2)
    return paper_list


if __name__== '__main__':
    user_agent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0'

    #这里url连接需要改,我用的是学校图书馆已经购买的万方数据库连接
    url_1 = 'http://s.g.wanfangdata.com.cn/Paper.aspx?q=%E4%B8%93%E4%B8%9A%3a%22%E4%B8%AD%E5%9B%BD%E8%AF%AD%E8%A8%'

    url_1_list = page_link_1(url_1)
    paper_title_dict = page_link_2(url_1_list, user_agent)
    paper_list = page_link_3(paper_title_dict)
    print 'the number of paper is %d' %len(paper_list)
    k = 1

#将文章摘要和关键词写入文件
    with open('paper_abstract_keywords_language.txt', 'a') as f:
        for each_paper in paper_list:
            keywords_length = len(each_paper)
            if keywords_length != 0:
                for i in range(keywords_length):
                    f.writelines(each_paper[i] + '+')
                f.writelines('\n')
                k += 1
            else:
                continue
    print 'the number of writed paper is %d' %k

      

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

软件功能介绍 起始版本: 因研发工作的需要,经常要查询一些数据库,如:CNKI中文期刊数据库、中国优秀博硕士学位论文全文数据库、维普数据库、万方数 据库等等,还要经常查询和下载美国专利、英国专利、欧洲专利、中国专利、日本专利、加拿大专利、澳洲专利、世界专利、新加坡专利等等 ,为了方便批量下载,设计该软件,初次具备的功能: 1、快速下载PDF、TIF、GIF、TXT、HTM、DOC、CAJ等各种类型的文件,尤其是需要一页一页另存为的PDF文件; 2、合并分页的PDF文件为单个文件;随意打印PDF文件; 3、有专门的下载列表,便于添加单个下载任务和两种方式的批量添加任务;可以同时加入多个专利的下载任务; 4、能够指定下载单个文件和自动下载全部文件; 5、方便快捷地浏览各国专利网站,查询各国专利; 6、流行的多页面浏览器带给您极大的方便,同时拥有众多强大的功能,如:破除鼠标右键封锁、破除保存限制... 7、自带的专利浏览器便于浏览各种专利文件,尤其适合浏览图片格式的文件,同时支持图片的打印。 2.1版本: 1、能够自动分析中国专利和美国专利的页码数; 2、下载美国专利的全文(含图片)也轻松自如; 3、下载的PDF文件能够完美合并,操作比Acrobat还要简单; 4、自带Tif和TIFF格式图片浏览器,随意打印; 5、能够定时刷新指定页面; 6、能够锁住指定页面和解锁; 7、能够过滤垃圾广告页面; 8、能够复制网页纯文本、含图片的文本和选中部分的网页源代码; 9、能够快速搜索电脑内的网页文件(文章内容含关键词,也可以搜索),并且多页面浏览器打开页面...... 2.4版本: 1、下载专利不需要填入专利页面数,软件会自动分析页面数; 2、您可以选择按专利号自动创建文件夹; 3、改进了PDF文件合并功能; 4、增加了TIF文件的合并功能; 5、调整了主界面,增加了菜单,减少了页标签,使得界面更加合理简洁; 6、增加了批量下载欧洲专利、中国专利、美国专利的功能;增加了对专利号的分析和错误提示功能; 7、增加了浏览多页面TIF格式图片专利的功能;改善了滚动条的鼠标响应; 8、在输入专利号时、增加了对剪贴板的监视功能,以便您连续复制专利号,而软件自动输入; 9、多页面浏览有维持在线功能、页面自动刷新功能、加锁和解锁功能...... 10、注册用户有对网页信息的深层次查看功能。 3.0版本: 1、多线程下载专利; 2、修改了多个错误(BUG); 3、调整界面,简化按钮; 4、优化了多个模块; 5、增加了欧洲专利同类专利号的显示; 6、优化了“亿愿专利图片浏览器” 3.4版本: 1、增加了中国专利法律状态批量检索和下载; 2、增加了欧洲专利法律状态批量检索和下载; 3、增加了自动收藏浏览过的指定类型的文件到指定文件夹,网页欣赏图片的同时,自动保存该图片文件; 4、增加了对网页弹出调试窗口的控制,消除烦人的打扰; 5、优化了对网页所有链接的查看,以及对网页选中部分所有链接的查看功能; 6、专利浏览部分的界面做了优化,文件类型可以自定义 。 6.0.717版本: 对亿愿多页面浏览器部分做了较多的功能增强和菜单调整,目前亿愿浏览器菜单主要有: 打开文件、网页另存为、用IE打开当前页面、全选、查找、编码、定时刷新本页面、过滤本页面、锁住当前页面、解锁所有页面、减小字体、增大字体、打印设置、打印预览、打印、收藏到[常用网站列表]、收藏到IE收藏夹、导出IE收藏到文件、整理IE收藏夹、多用户电脑的所有用户IE收藏列表、破除鼠标右键封锁和复制封锁、破除保存封锁、显示隐藏元素、全部链接在新窗口打开、置隐藏元素为空、置白色字体内容为空、查看网页源代码、查看选中的网页源代码、复制选中部分的网页源代码、查看网页全部文本、查看选中的网页文本、复制选中部分的含图片的网页文本、复制选中的网页纯文本、查看全部链接和选中部分的链接、查看所有图片链接、查看所有PDF文件链接、查看CNKI文章链接、查看Flash文件链接、查看自定义类型文件的链接、跟踪所有链接、多国专利分析、中国专利检索下载、美国专利检索下载、欧洲专利检索下载、日本专利检索下载、专利和文件下载、专利文件阅览、亿愿专利文件浏览器、亿愿文件索引专家、设置、IE设置、编辑页面过滤、PDF文件合并、TIF文件合并、搜索硬盘网页文件、查看浏览器缓存、清空浏览器缓存、图文收集、精品文章收集、精品文章查询、收藏图片、网络计划、亿愿酷站大全、重要网址收藏、打开最后关闭的一个网页、打开最后访问过的所有网页、维普数据库、万方数据库、CNKI数据库、欧洲专利、美国专利、中国专利、加拿大专利、澳大利亚专利、新西兰专利、新加坡专利、世界专利、德国专利、日本专利、专利下载指南、作者网站、检查最新版本、在线升级、联系注册、定制软件、给软件作
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值