0

嗨,我对抓取很陌生,非常感谢您的帮助。

我正在尝试使用以下方式打开以下网址:

from bs4 import BeautifulSoup

import urllib2
import csv
import re

amicales = urllib2.urlopen("http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=014000%2F014040&JAN_BD_CP=&JRE_ID=%CEle-de-France%2FParis&JAN_LIEU_DECL=&JTY_ID=&JTY_WALDEC=&JTY_SIREN=&JPA_D_D=&JPA_D_F=&rechercher.x=36&rechercher.y=7&rechercher=Rechercher")
soup = BeautifulSoup(amicales)

我想从搜索查询中抓取结果。问题是,我感兴趣的每个结果都以 /html 结尾。我相信这会迫使beautifulsoup 在第一个搜索结果之后停止阅读源代码,从而忽略其余20 个左右的结果。

例如,这里只包含结果“NATION INITIATIVE ET OU MACHROU3 WATTAN”:

print(soup.prettify())

谁能帮我打开整个页面,而不仅仅是第一个 /html 标记之前的所有内容?

4

1 回答 1

2

哦,天哪,那个网站彻底坏了。</html>每页只能有一个标签。如果查看源代码,您会看到只有一个<html>标签(而不是 50 个</html>标签。

一种解决方法是先删除所有</html>标签,然后再将其传递给 BeautifulSoup。

page = page.replace("</html>", "")
soup = BeautifulSoup(page)
于 2013-10-19T13:41:14.460 回答