curl txt批量_用R语言的RCurl包结合XML包批量下载生信课件

本文介绍了如何使用R语言的RCurl和XML包结合,批量下载宾夕法尼亚州立大学和德国自由大学的生信课件PDF。通过示例代码展示了如何处理不同结构的网页链接,以及利用curl和Linux命令行下载Minnesota大学的教程材料。
摘要由CSDN通过智能技术生成

首先是宾夕法尼亚州立大学(The Pennsylvania State University缩写PSU)的生信课件下载,这个生信不仅有课件,而且在中国的优酷视频网站里面还有全套授课视频,非常棒!

可以看出所有的课件pdf链接都在这一个页面,所以是非常简单的代码!

下面是R代码:

library(XML)

library(RCurl)

library(dplyr)

psu_edu_url='http://www.personal.psu.edu/iua1/courses/2013-BMMB-597D.html';

wp=getURL(psu_edu_url)

base='http://www.personal.psu.edu/iua1/courses/file';

#pse_edu_links=getHTMLLinks(psu_edu_url)

psu_edu_links=getHTMLLinks(wp)

psu_edu_pdf=psu_edu_links[grepl(".pdf$",psu_edu_links,perl=T)]

for (pdf in psu_edu_pdf){

down_url=getRelativeURL(pdf,base)

filename=last(strsplit(pdf,"/")[[1]])

cat("Now we down the ",filename,"\n")

#pdf_file=getBinaryURL(

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`cURL` 是一个强大的工具,用于发送 HTTP 请求。当涉及到发送POST请求并设置HTTP头时,`curl_easy_setopt` 和 `curl_formadd` 可以帮助我们实现。 `curl_easy_setopt` 函数允许我们直接设置特定的 `CURLoption`。例如,要设置HTTP头信息,我们可以使用 `CURLOPT_HTTPHEADER`[^1],如下所示: ```c // 示例 CURL *curl; curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, "Content-Type: application/json"); // 设置HTTP头 // 其他选项... curl_easy_perform(curl); // 发送请求 curl_easy_cleanup(curl); curl_global_cleanup(); } ``` 然而,如果你想要更方便地添加表单字段(括POST参数),可以使用 `curl_formadd`[^2]。它与 `CURLOPT_POSTFIELDS` 结合使用,如下: ```php $ch = curl_init(); // 添加HTTP头 curl_setopt_array($ch, [ CURLOPT_URL => "http://example.com", CURLOPT_HTTPHEADER => ["Content-type: application/json"], ]); // 使用curl_formadd来添加POST数据 curl_formadd(&multiPart, &lastOffset, CURLFORM_COPYNAME, "key", CURLFORM_FILE, "file.txt", NULL); // 设置POST数据 curl_setopt($ch, CURLOPT_POSTFIELDS, multiPart); // 执行请求 curl_exec($ch); // 清理 curl_multi_free(multiPart); curl_close($ch); ``` 请注意,在这个示例中,`curl_formadd` 常用于处理复杂的表单数据结构,而 `curl_easy_setopt(curl, CURLOPT_POSTFIELDS)` 更适合简单的POST数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值