美文网首页文献解读
Python文献爬虫②

Python文献爬虫②

作者: 研究僧小蓝哥 | 来源:发表于2019-11-21 18:10 被阅读0次

    得到上次爬虫的结果以后,需要完成的是把每篇的摘要都爬取下来。先前爬取的表格需要做一丢丢修改,只需要文章标题和URL链接,就像这样:


    图片来子小蓝哥

    下面就是哗哗哗写代码了。


    import time
    import csv
    import openpyxl
    import os
    import requests
    from bs4 import BeautifulSoup
    
    time_start = time.time()
    
    print(os.getcwd())
    
    csv_file=open('clean.csv','r',newline='')
    reader=csv.reader(csv_file)
    
    user_agent = {
        'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'
    }
    
    title_link_result = openpyxl.Workbook()
    sheet = title_link_result.active
    sheet.title = 'CNKI结果'
    col_name = ['link','abstract']
    
    url_list = []
    for i in reader:
        url_list.append(i)
    
    sheet.append(col_name)
    
    result = []
    
    for i in url_list[0:len(url_list)]:
    
        url = i[1]
        res = requests.get(url)
        soup = BeautifulSoup(res.text,'html.parser')
    
        try:
            items = soup.find('div',id = 'content')
            abstract = items.find('div',class_='xx_font').text
        except AttributeError:
            abstract = 'None'
    
        sheet.append([url,abstract])
        result.append([url,abstract])
        print(abstract)
        time_end = time.time()
        print('成功爬取:%s条'%len(result))
        print('耗时:',time_end - time_start)
    
        #if len(result) in range(500,6994,500):
            #time.sleep(300)
    title_link_result.save('根系分泌物CNKI结果.xlsx')
    

    一般是爬取2500条以下的话,知网无障碍响应。超过2500条以后服务器可能会无法响应。

    看看结果

    图片来子小蓝哥

    因为一次爬6000+的话,肯定会被封IP,然后无响应,就分几次爬虫。
    最后的Excel表和上次的表通过Vlookup就能get到一次了。


    外卖到了!

    相关文章

      网友评论

        本文标题:Python文献爬虫②

        本文链接:https://www.haomeiwen.com/subject/srntwctx.html