我正在处理废品代码以从.aspx网页抓取信息。我想检索数据库中的所有记录,但我没有记录索引的列表。我只知道索引是介于1和9000000之间的整数。因此,我正在考虑使用for循环对索引使用强力。
我想从每条记录中检索某些信息。所以,我使用beautifulsoup和pandas.DataFrame来存储我想要的信息。然后,我追加数据帧来收集记录。
例如:
df_all = pandas.DataFrame(col= ['A', 'B', 'C'])
# id: Unique id of each record; df_all: the dataframe that stores the records
def func(id, df_all):
"""
Use beautifulsoup to collect the info from the webpage
"""
df_temp = pd.DataFrame([1,2,3], col= ['A', 'B', 'C'])
df_all = df_all.append(df_temp, ignore_index= True)
return df_all
我正在考虑使用几个for循环来同时执行func函数。例如,第一个客户端执行1到22500000;第二个客户端做22500001到450000;等等。然后我可以合并每个客户的结果。我尝试使用ipyparallel,multiprocessing.pool和joblib。但是,似乎我的函数结构对于并行处理是不正确的。我应该如何修改我的结构以执行并行for循环任务?或者有更好的方法从数据库中获取数据?数据库中只有大约29k +条记录。从1到90000000使用蛮力是不是最好的方法。
答案 0 :(得分:0)
好的肮脏的解决方案,但我认为它有效。
有一个字典映射{owner name
:process_id
}
对于字母表中的每个字母,请使用您的程序:
process_ids
要运行搜索并转到下一页,请发送http POST。打开开发人员工具,单击按钮,查看您的浏览器发送的内容,然后从Python发送相同的内容。
然后,一旦拥有了所有process_ids
,您就可以遍历字典并轻松访问每个记录页面。