文献解读

Python文献爬虫②

2019-11-21  本文已影响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到一次了。


外卖到了!

上一篇下一篇

猜你喜欢

热点阅读