我是这个社区的新手,我希望你能帮助我解决我的问题。在我目前的项目中,我想刮一页。这些是有多个信息的加油站。现在所有来自加油站的信息都存储为一个变量。但是,我希望每个加油站都有一行,这样我就能得到一个大的 Dataframe 。每个单独的加油站提供有id,并且它们存储在变量id中。
ids=results["objectID"].tolist()
id_details=[]
for i,id in enumerate(ids):
input_dict = {
'diff_time_zone':-1,
'objectID':id,
'poiposition':'50.5397219 8.7328552',
'stateAll':'2',
'category':1,
'language':'de',
'prognosis_offset':-1,
'windowSize':305
}
encoded_input_string = json.dumps(input_dict, indent=2).encode('utf-8')
encoded_input_string = base64.b64encode(encoded_input_string).decode("utf-8")
r = s.post("https://example.me/getObject_detail.php", headers=headers, data="post="+encoded_input_string)
soup = BeautifulSoup(r.text, "lxml")
lists= soup.find('div', class_='inside')
rs= lists.find_all("p")
final = []
for lists in rs:
txt = lists if type(lists) == NavigableString else lists.text
id_details.append(txt)
df= pd.DataFrame(id_details,columns = ['place'])
1条答案
按热度按时间7bsow1i61#
那么,我个人会使用数据库,而不是一个 Dataframe 在这种情况下,可能不会保存为文件.正如我所看到的,有基于字典的数据,可以很容易地实现在ElasticSearch例如.
如果有任何原因(这迫使不使用任何类型的数据库)这样做(使用Dataframe)访问文件并将其附加到它的末尾将工作得很好,您应该最大化您的块,因为访问文件并写入它就像一个瓶颈,这里说块是因为RAM不是无限的。
---请求第二种方法的更新。
你的代码中有些部分是缺失的,但是你会明白的。