Closed wang-yulin closed 3 years ago
找到原因了,原来是Q那个页面没有table,所有遍历到那就会出现如上的问题,打印只是打印了Q之前的页面... ...
Q 页面空的么?我做的时候好像没遇到这问题呀。
Q 页面空的么?我做的时候好像没遇到这问题呀。
嗯,这个页面没有table,我在遍历爬回来的table的时候,加了句if table:
做判断就搞定了
https://www.lcsd.gov.hk/CE/Museum/Space/zh_CN/web/spm/starshine/resources/constemyth/chinengstars/startable17.html
我的代码里用 for table in soup.find('div', id='article').find_all('table'):
来循环,要是没有 <table>
标签,应该就不会进入循环体,按理不会有异常呀。
我发现了我跟老师找<table>
标签的逻辑不一样,下面是我的代码,而且用我这个逻辑的话,A页面只能抓到第一个表格。
tables = []
for page in pages:
res = requests.get(url=page)
payload = res.content
soup = BeautifulSoup(payload, 'html.parser')
table = soup.find('table', class_='table_space')
tables.append(table)
tables
你这个方法没用到 bs4 提供的好用的 find_all
,试试呗
你这个方法没用到 bs4 提供的好用的
find_all
,试试呗
嗯,用上了find_all
,这下真正解决了开始那个问题。
我在抓取香港太空馆亮星数据的时候,先把所有页面的Table抓取并放进了
tables
变量里面。然后尝试遍历所有Table抓取每一个单元格的数据,出现了如下错误。但是我尝试直接打印如下代码中的row
的时候,没有出现任何问题。我的疑惑是既然能打印,那执行其他操作应该也没有问题啊,还请老师帮忙看看哪个环节出了问题呢。