当前位置: 首页 > news >正文

深圳网站建设制作2021安全员证报名入口

深圳网站建设制作,2021安全员证报名入口,免费模板下载软件,开发公众号需要多少钱背景 最近#xff0c;在爬取关于国内985大学的学报时#xff0c;我注意到大部分大学学报站点格式都采用相似的形式#xff0c;并且PDF链接都使用自增的ID。然而#xff0c;我也发现了一个问题#xff0c;即大多数PDF链接的ID并不是连续的。现在我将向你分享一些方法…背景 最近在爬取关于国内985大学的学报时我注意到大部分大学学报站点格式都采用相似的形式并且PDF链接都使用自增的ID。然而我也发现了一个问题即大多数PDF链接的ID并不是连续的。现在我将向你分享一些方法以快速获取所有的大学学报PDF链接。 首先通过最新期刊和最旧的期刊查找pdf链接的id范围 最新期刊为 2023-03-20 最旧期刊为 2013-01-30 点击进去后下载pdf后在开发者工具可以发现链接上的id最大在1000左右最小的id在个位数。 当我们请求不存在的id会发现response.headers.get(‘Content-Type’)为html类型而正确的id响应类型则为application/x-download。 response session.get(fhttp://journal.pku.edu.cn/CN/article/downloadArticleFile.do?attachTypePDFid105, #id为105不正确的idcookiescookies,headersheaders,verifyFalse)print(response.headers.get(Content-Type) )输出 text/html;charsetUTF-8 response session.get(fhttp://journal.pku.edu.cn/CN/article/downloadArticleFile.do?attachTypePDFid1,cookiescookies,headersheaders, streamTrue, verifyFalse) print(response.headers.get(Content-Type) )输出 application/x-download 如果使用head请求虽然可以快速获取所有响应类型而无需请求响应体。但这里如果你发现使用requests.head方法返回的headers和使用requests.get方法返回的headers不一致那可能是由于服务器对不同类型请求返回的header信息不同导致的。 我们可以通过覆盖爬取获取每个刊期不同链接上的id但需要写一堆xpath或正则所有这里不使用这个方法。 快速爬取pdf链接 我们可以使用request的streamTrue方法快速请求url获取pdf链接 在requests库中stream参数用于控制响应是否以流的方式进行处理。默认情况下stream参数的值为False表示禁用流式处理整个响应内容会一次性加载到内存中。 当stream参数设置为True时表示启用流式处理响应内容会以流的形式逐步传输而不是一次性加载到内存中。这在处理大型响应体或需要逐步处理数据的情况下很有用。 当stream为True时可以使用close方法关闭请求就不需要进行请求响应体可以节省更多资源和时间去请求其他url 完整代码 import requests,time from requests.adapters import HTTPAdapter, Retry import threadingurl_id [] def get_response(id):cookies {JSESSIONID: 1EEC758D35D23CE4721E1419871575C6,}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-CN,zh;q0.9,ja;q0.8,Connection: keep-alive,Range: bytes0-0.1 ,# Cookie: JSESSIONID1EEC758D35D23CE4721E1419871575C6,Referer: http://journal.pku.edu.cn/CN/abstract/abstract1015.shtml,Upgrade-Insecure-Requests: 1,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36,}session requests.Session()retries Retry(total3, backoff_factor0.5, status_forcelist[500, 502, 503, 504])session.mount(http://, HTTPAdapter(max_retriesretries))response session.get(fhttp://journal.pku.edu.cn/CN/article/downloadArticleFile.do?attachTypePDFid{id},cookiescookies,headersheaders,streamTrue, verifyFalse)if response.headers.get(Content-Type) application/x-download:response.closeurl_id.append(id)else:print(无效id-------,id,response.headers.get(Content-Type))return response.headers.get(Content-Type) threads [] for i in range(2000):thread threading.Thread(targetget_response, args(i,))thread.start()threads.append(thread)for td in threads:td.join()输出 通过输出可以发现id不是连续的并且代码运行耗时1分半钟速度也比直接get请求不使用streamTrue快出几十倍。 通过请求上述代码中的url_id 列表里的有效id我们就可以直接下载pdf了。这个站点pdf数据不多但国内大学站点大部分都可以采用这种形式爬取。
http://www.pierceye.com/news/37812/

相关文章:

  • 徐州做网站最好的公司工程项目建设自学网站
  • 网站改版 百度影响it运维
  • 网站建设403网站怎么建设?
  • 在线做带字头像的网站网站备案是怎么回事
  • 如何推广手机网站公司网站cms
  • 内容类网站如何 流量厦门公司做网站
  • 百度帐号登录班级优化大师是干什么用的
  • 怎样接做网站的活wap手机网站分享代码
  • 集团网站 wordpress邯郸思勤网络科技有限公司
  • 国内做服装的网站有哪些网站模板备份
  • 自己电脑做服务器上传网站 需要备案吗Wordpress首页制作代码
  • 易县有没有z做网站的宜宾建设局网站
  • 南宁企业免费建站网站开发合同履约
  • 行业导航类网站模板263企业邮箱个人入口登录
  • 优化网站工具哪种网站名称容易通过备案审核
  • 沧州企业网站优化建设网站用新域名还是老域名
  • 带空间二字的韩国视频网站网站要学什么
  • 水果网站建设的策划书淘宝店群软件定制开发
  • 网站规划的主要内容斐讯k3做网站
  • 12306网站开始是谁开发的品牌设计有哪些
  • 电子商务网站网络拓扑好的龙岗网站建设
  • 招商网站建设方案海安公司网站建设
  • 公司网站设计 上海手机网站建设林肖
  • 马来西亚做公路投标网站怎么在微商城开店
  • 网站建设属于营业范围里的哪一项食品建设网站
  • 网站建设询价函电子商务网站规划与建设论文
  • 徐州h5模板建站龙岩兼职招聘最新发布
  • 外汇网站建设ps软件下载网站
  • 河北省建设厅注册中心网站首页响应适网站开发
  • 如何租用服务器做网站建筑公司企业资料