我将数据集从https://www.usgbc.org/projects/list?page=17&keys=Mexico导入python
此数据集包含具有LEED认证的建筑(提供的链接专门过滤来自墨西哥的建筑)
每一行都包含一个url,其中包含有关每个建筑的详细信息。我有兴趣通过网络扫描每个建筑的url来获取邮政编码
我已经有了一个webcrawler来获取每页的数据:
def webcrawler(x):
url = x
try:
page = requests.get('https://www.usgbc.org/projects/reforma-180')
tree = html.fromstring(page.content)
except: # Regresa false si no logras entrar a la URL
street = False
locality = False
postalcode = False
country = False
return
# get data from tree. Return None if nothing is found
try:
street = ''.join(tree.xpath('//span[@itemprop="streetAddress"]/text()'))
except:
street = None
try:
locality = tree.xpath('//span[@itemprop="addressLocality"]/text()')
except:
locality = None
try:
postalcode = tree.xpath('//span[@itemprop="postalCode"]/text()')
except:
postalcode = None
try:
country = tree.xpath('//span[@itemprop="addressCountry"]/text()')
except:
country = None
return [street, locality, postalcode, country]
# Try it yourself
x = 'https://www.usgbc.org/projects/reforma-180'
y = webcrawler(x)
了解导入的数据集包含一个名为“Path”的列,其中包含指向每个建筑页面的链接,并且数据集长度为2390行,我的问题是:
使用df.Path.apply(webcrawler)是否足够
df.Path.apply(webcrawler)
我担心这会在很短的时间内向服务器发送大量请求,这可能是不道德的,或者被解释为对服务器的攻击
我能听听你的意见吗
在导入中包含
from time import sleep
,并添加sleep(0.5)
左右,以便在请求之间休眠半秒相关问题 更多 >
编程相关推荐