加速数据刮取和mysql插入

ni65a41a  于 2021-06-21  发布在  Mysql
关注(0)|答案(0)|浏览(196)

我目前正在抓取一个网站tat提供的一个数据表。结构如下

<table>
 <tr> #This is the first row
   <td> data 1 </td>
   .....
 </tr>
 ....
</table>

假设最后有一个20行10列的表。我的脚本必须从一个表转到下一个表,在100到1000个表之间。
因此,我使用xpath定位每一行,将其数据插入两个表中,然后转到下一个表。一个伪代码

for table in tables: #Between 100 and 1000 tables
  for row in table:
    Here I get from the row each td tag and returns a list
    Insert in table 1 half of the data, and get the id of the row inserted
    insert in table 2 the other half with the id of the first table row, to link both.

我´我一直在计时,看看为什么这需要这么长时间,我得到了以下

Overall table time 16 seconds
  Getting the data and generating the list for one row 0,453 secs

  Inserting data in table 1 0,006 secs
  Inserting data in table 2 0,0067 secs

这意味着,如果我必须刮掉所有1000张table,这将花费我10个多小时,这是太多的时间,考虑到当我使用美丽的汤整体时间在半小时和1:30之间。
看到问题是从每一行的每一个td标记中获取文本数据,有什么方法可以加快它的速度吗?本质上我在剧本的那部分所做的是

data_in_position_1=row.find_element_by_xpath('.//td[1]').text
.....
data_in_position_15=row.find_element_by_xpath('.//td[15]').text

list=[data_in_position_1,.....,data_in_position_15]

return list

嗯,我不知道´我不知道是否一次刮掉整个table,或者用不同的方法会显示出不同的结果,但是我需要一些方法来加速这个过程。
谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题