所以我正在学习使用Selenium刮网站:Perl上的Chrome,我只是想知道我如何从2017年到2021年下载所有PDF文件并将其存储到这个网站https://www.fda.gov/drugs/warning-letters-and-notice-violation-letters-pharmaceutical-companies/untitled-letters-2021的文件夹中。到目前为止,这是我所做的
use strict;
use warnings;
use Time::Piece;
use POSIX qw(strftime);
use Selenium::Chrome;
use File::Slurp;
use File::Copy qw(copy);
use File::Path;
use File::Path qw(make_path remove_tree);
use LWP::Simple;
my $collection_name = "mre_zen_test3";
make_path("$collection_name");
#DECLARE SELENIUM DRIVER
my $driver = Selenium::Chrome->new;
#NAVIGATE TO SITE
print "trying to get toc_url\n";
$driver->navigate('https://www.fda.gov/drugs/warning-letters-and-notice-violation-letters-pharmaceutical-companies/untitled-letters-2021');
sleep(8);
#GET PAGE SOURCE
my $toc_content = $driver->get_page_source();
$toc_content =~ s/[^\x00-\x7f]//g;
write_file("toc.html", $toc_content);
print "writing toc.html\n";
sleep(5);
$toc_content = read_file("toc.html");
此脚本只下载网站的全部内容。希望有人在这里可以帮助我,教我。非常感谢。
1条答案
按热度按时间ngynwnxp1#
这里有一些工作代码,希望能帮助您开始
这需要走捷径,切换方法,并回避一些问题(需要解决这个有用的工具的更全面的实用性)。
现在循环链接,更仔细地形成文件名,并像上面的程序一样下载每个链接。如果需要的话,我可以进一步填补空白。
该代码将pdf文件放在磁盘上,在其工作目录中。请在运行此之前检查,以确保没有被覆盖!
请参阅Selenium::Remote::Driver的初学者。
注意事项:这个任务不需要Selenium;它都是直接的HTTP请求,没有JavaScript。所以
LWP::UserAgent
或Mojo
就可以了。但是我认为你想学习如何使用Selenium,因为它经常被需要并且很有用。