从FTP站点使用Python、Urllib解析/抓取表
我正试图从FTP站点解析/刮取一些数据。具体而言: 最终,我希望能够有一个Python脚本,可以从这个站点下载所有文件。但首先,我尝试学习如何使用BeautifulSoup4和urllib2获取所有下载链接。(因为请求不适用于HTML站点?) 我检查了这些元素,发现它们存储在一个表中,但是调用findAll时,我得到了一个findAll属性错误 这就是我的代码现在的样子(仍在启动。我想处理表数据):从FTP站点使用Python、Urllib解析/抓取表,python,parsing,ftp,web-scraping,beautifulsoup,Python,Parsing,Ftp,Web Scraping,Beautifulsoup,我正试图从FTP站点解析/刮取一些数据。具体而言: 最终,我希望能够有一个Python脚本,可以从这个站点下载所有文件。但首先,我尝试学习如何使用BeautifulSoup4和urllib2获取所有下载链接。(因为请求不适用于HTML站点?) 我检查了这些元素,发现它们存储在一个表中,但是调用findAll时,我得到了一个findAll属性错误 这就是我的代码现在的样子(仍在启动。我想处理表数据): 导入urllib2 从bs4导入BeautifulSoup url=”ftp://ftp.ncb
导入urllib2
从bs4导入BeautifulSoup
url=”ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA_000513335.1_PCAMFM013_20131106"
html=urllib2.urlopen(url.read())
soup=BeautifulSoup(html)
table=soup.find('table')
rows=table.findAll('tr')HTML表不是由FTP服务器发送的。只有浏览器会根据FTP服务器返回的目录列表生成HTML。这意味着您不能使用BeautifulSoup来解析它。而是查看与FTP服务器的交互。HTML表不是由FTP服务器发送的。只有浏览器会根据FTP服务器返回的目录列表生成HTML。这意味着您不能使用BeautifulSoup来解析它。相反,查看是否与FTP服务器交互。它不能在None
对象上使用findAll
,因为表
不包含任何内容table
不包含任何内容,因为soup.find('table')
未返回任何内容soup.find('table')
没有返回任何内容,因为soup
变量只包含一个巨大的
语句。把汤打印出来看看。是的,我现在明白了。我该怎么办?它不能在None
对象上使用findAll
,因为表
不包含任何内容table
不包含任何内容,因为soup.find('table')
未返回任何内容soup.find('table')
没有返回任何内容,因为soup
变量只包含一个巨大的
语句。把汤打印出来看看。是的,我现在明白了。我该怎么办?
import urllib2
from bs4 import BeautifulSoup
url ="ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA_000513335.1_PCAMFM013_20131106"
html = urllib2.urlopen(url).read()
soup = BeautifulSoup(html)
table = soup.find('table')
rows = table.findAll('tr') <== error here
print rows