爬虫之福州大学学报退稿率

目录

一、爬虫

二、数据处理

 2.1 历年投稿总数:

  2.2 各稿件状态比例:

 2.3 历年退稿率

 三、总结(福州大学学报退稿率)


一、爬虫

从福州大学学报微信公众号可以发现稿件状态的查询接口, 根据测试可知稿件号由年份与当年投稿数组成,例如稿件号22345所对应的稿件是2022年第345号稿件。具体如下图所示:

为爬取历年稿件状态,复制出该界面链接,通过该链接进一步寻找访问接口为:http://fzdx.cnjournals.cn/ch/mobile/m_article_status_query.html

 在浏览器中进入F12开发者工具调试界面中的网络,并输入稿件号,如下图所示:

 输入稿件号并查询的结果确定接口的请求方法与相关参数如下:

 于是可以相应的编写如下爬虫代码,注意访问间隔时间,否则会爬虫会由于访问过快被限制访问

code = []
state = []

for i in range(13000,23555):
    url = "http://fzdx.cnjournals.cn/ch/mobile/m_article_status_query_data.aspx?file_no={}".format(i)
    res = requests.get(url).text

    if i % 30 == 0:
        time.sleep(10)

    if res[:10] == "<br><br>您输":
        continue
        
    print(res.split(",")[0].split(":")[1],res.split(",")[1].split(":")[1])

    code.append(res.split(",")[0].split(":")[1])
    state.append(res.split(",")[1].split(":")[1])

二、数据处理

将爬取的数据保存至DataFrame后输出至CSV文件,并仅保存稿件号的年份作为index,代码如下:

data = pd.DataFrame(state,index=code).to_csv("FZUdata_temp.csv")
data = pd.read_csv("FZUdata_new.csv",encoding="gbk",index_col=0)
data.columns = ["state"]

newCols = []
for eachIndex in data.index:
    newCols.append(eachIndex//1000)
data.index = newCols

结果如下:

 2.1 历年投稿总数:

#每年投稿总数
for eachYear in range(13,24):
    print(len(data.loc[eachYear]))

  2.2 各稿件状态比例:

#各稿件状态比例
data["state"].value_counts(1)*100

 2.3 历年退稿率

for eachYear in range(13,24):
    print(eachYear,
          data["state"].loc[eachYear].value_counts(1)["直接退稿"]*100,
          data["state"].loc[eachYear].value_counts(1)["退稿"]*100,
          data["state"].loc[eachYear].value_counts(1)[["直接退稿","退稿"]].sum()*100)

 三、总结

近五年福州大学学报退稿率接近70%,但其中直接退稿率逐渐增加,从2020年的39.19%上升至2023年(2023年数据截止于2023.6.20)的59.73%,审稿后退稿率降低至10.41%。

 

猜你喜欢

转载自blog.csdn.net/zsllsz2022/article/details/131231542