兰州企业网站建设哪家好,曹妃甸建设局网站,网络公司网站做的不错的,wordpress怎么设置访问时隔一年#xff0c;很久没更新博客了。今天给大家带来一个python3采集中国知网 #xff1a;出版来源导航 这个是网址是中国知网的#xff0c;以下代码仅限于此URL#xff08;出版来源导航#xff09;采集#xff0c;知网的其他网页路径采集不一定行#xff0c;大家可以…时隔一年很久没更新博客了。今天给大家带来一个python3采集中国知网 出版来源导航 这个是网址是中国知网的以下代码仅限于此URL出版来源导航采集知网的其他网页路径采集不一定行大家可以试试。
在发布代码前大家先看下下载文件数据。 以上的数据基本来源于以下图片的导航中。 主要采集栏目搜索出自己想要的文档然后进行采集下载本地中。 以下是完整代码在使用代码请安装好对应的包如果是pycharm 在设置 和 控制台终端 都可以安装。需要注意的是 自己需要替换 headers 内容。 我使用的环境是 Windows 11 64位教育版 Pycharm 2023.2.3版本 python 3.6.8 # encoding:utf-8
import json
import random
import timeimport requests
from bs4 import BeautifulSoup
import csv
import os
import urllib.parse
1、excel格式只要标题加 HTML阅读连接
2、把内容写入到WORD或者直接下载PDF
要求全文设置关键字新农人爬取标题、文章链接 。就这2个内容
headers {Accept: text/html,application/xhtmlxml,application/xml;q0.9,image/avif,image/webp,image/apng,*/*;q0.8,application/signed-exchange;vb3;q0.7,Accept-Language: zh,zh-CN;q0.9,Cache-Control: max-age0,Connection: keep-alive,Cookie:请替换自己的COOKIE,Referer: https://navi.cnki.net/,Sec-Fetch-Dest: document,Sec-Fetch-Mode: navigate,Sec-Fetch-Site: same-site,Sec-Fetch-User: ?1,Upgrade-Insecure-Requests: 1,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36,sec-ch-ua: Google Chrome;v119, Chromium;v119, Not?A_Brand;v24,sec-ch-ua-mobile: ?0,sec-ch-ua-platform: Windows,
}def get_index(page,baseId,key_words):form_data {pcode: CCND,baseId: baseId,where: %28QW%25%27%7B0%7D%27%29,# where: %28QW%25%27%7B0%7D%27%29,searchText: key_words,condition: ,orderby: FFD,ordertype: DESC,scope: ,pageIndex: page,pageSize: 20,searchType: 全文,}headers {Accept: */*,# Accept-Encoding: gzip, deflate, br,Accept-Language: zh-CN,zh;q0.9,en;q0.8,en-GB;q0.7,en-US;q0.6,Connection: keep-alive,Content-Length: 223,Content-Type: application/x-www-form-urlencoded; charsetUTF-8,Cookie: 请替换自己的COOKIE,Host: navi.cnki.net,Origin: https://navi.cnki.net,Referer: https://navi.cnki.net/knavi/newspapers/NMRB/detail?uniplatformNZKPT,Sec-Ch-Ua: Microsoft Edge;v119, Chromium;v119, Not?A_Brand;v24,Sec-Ch-Ua-Mobile: ?0,Sec-Ch-Ua-Platform: Windows,Sec-Fetch-Dest: empty,Sec-Fetch-Mode: cors,Sec-Fetch-Site: same-origin,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0,X-Requested-With: XMLHttpRequest,}url https://navi.cnki.net/knavi/newspapers/search/resultsresponse requests.post(url, headersheaders, dataform_data)html BeautifulSoup(response.content, lxml)for tag in html([thead]):tag.extract()try:content html.find_all(table, class_tableStyle)[0]except:print(采集完成)else:content_tr content.find_all(tr)for ct in content_tr:td ct.find(td, class_name)try:href td.find(a)[href]except:href try:name td.find(a).textexcept:name try:releaseDate ct.find_all(td, aligncenter)releaseDate [rd.text for rd in releaseDate if - in str(rd.text)][0]except:releaseDate data [name, releaseDate, href]saveCsv(baseIds, data)get_download_urls(href)try:pageCount html.find(input, idpageCount)[value]except:print(爬取完成)else:page 1print(f正在爬取{page 1}页)t random.randint(1, 2)print(f休息 {t} 秒后继续爬取)time.sleep(t)get_index(page,baseIds)def saveCsv(filename, content):保存数据为CSV文件 list 写入fp open(f{filename}.csv, a, newline, encodingutf-8-sig)csv_fp csv.writer(fp)csv_fp.writerow(content)fp.close()print(f正在写入:{content})def get_download_urls(url):response requests.get(url, headersheaders)html BeautifulSoup(response.content, lxml)title str(html.find(h1).text).replace(/, ).replace(\\, )dlpdf html.find(li, class_btn-dlpdf).find(a)[href]downfiles(dlpdf, title)def downfiles(url, filename):session requests.Session()content session.get(urlurl, headersheaders).contentwith open(f{baseIds}/{filename}.pdf, wb) as f:f.write(content)print(filename, 下载成功)def create_directory(directory):if not os.path.exists(directory):os.makedirs(directory)def text_to_urlencode(chinese_str):# 中文字符串# chinese_str 新农人# 将中文字符串编码为UTF-8格式chinese_bytes chinese_str.encode(utf-8)# 将字节串转换为URL编码格式url_encoded urllib.parse.quote(chinese_bytes, safe/:)return url_encodedif __name__ __main__:# 采集网址https://navi.cnki.net/knavi/newspapers/search?uniplatformNZKPT# 再网址搜索 相关报纸的关键词信息data [标题, 日期, 内容链接]pa 0baseIds NMRB #create_directory(baseIds)saveCsv(baseIds, data)key_words 新农人 # 关键词key_words text_to_urlencode(key_words)get_index(pa,baseIds,key_words)声明代码仅限于学习学术研究使用请勿用于非法用途如有利用代码去违法犯罪与作者无关。 不懂得请留言。不一定及时回复但肯定会回复。