我需要从这个网站中提取每个城市的所有代码,以便创建一个表格的Python字典:
('city' : 'institution code')
从字符串开始:
<li onclick="fillEnte('ABANO TERME','2050540010');">ABANO TERME (PD)</li>
Abano Terme
是城市的名称,2050540010
是机构代码。
我知道我应该使用GET
而不是正则表达式,但我不知道怎么做。或者我应该使用urllib2吗?
P.S。我是一名自学者,请耐心等待。
答案 0 :(得分:1)
您应安装并使用requests
和BeautifulSoup
执行此操作,如下所示:
from bs4 import BeautifulSoup
import requests
import re
url = "http://finanzalocale.interno.it/apps/floc.php/ajax/searchComune"
r = requests.get(url, headers={'User-Agent': 'Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405'})
soup = BeautifulSoup(r.content, "html.parser")
city_codes = {}
for li in soup.find_all('li'):
city, code = re.search(r"'(.*?)','(.*?)'", li['onclick']).groups()
city_codes[city] = code
print city_codes['ABANO TERME']
哪会给你:
2050540010
您通常可以使用以下方法安装这些:
pip install requests
pip install beautifulsoup4
该脚本首先使用请求库获取HTML并将其传递给BeautifulSoup以解析HTML。请注意,此网站需要指定合适的User-Agent
,否则将不会返回数据。
接下来,该脚本使用find_all()
函数获取HTML中的所有<li>
条目。其中每个都包含一个onclick=
属性,该属性被提取。然后使用正则表达式从文本中提取city
和code
部分。然后将它们用于构建您的code_codes
字典。