我正试图从一个简单的网站上抓取数据,并使用带有selenium的python2.7将其保存到CSV文件中,但我遇到了一个小问题。你知道吗
正如您在下面的HTML中看到的,有两个类company
和person
。在company
类下,有时有3个person类,有时只有1或4个person类,因此这意味着没有序列。你知道吗
每次只能得到指定公司类下的persons
时,我应该怎么做?你知道吗
<tr class="company">..</tr>
<tr class="person">..</tr>
<tr class="person">..</tr>
<tr class="person">..</tr>
<tr class="company">..</tr>
<tr class="person">..</tr>
<tr class="company">..</tr>
<tr class="person">..</tr>
<tr class="person">..</tr>
<tr class="company">..</tr>
数据应保存在csv中,如下所示:
company1 person1
company1 person2
company1 person3
company2 person1
company3 person1
company3 person2
有人帮我吗?我应该在这里使用哪种循环?什么是逻辑?你知道吗
我知道你正试图用硒来达到这个目的。但更有效的方法是使用requests和beautifulsouplibs。它们同时适用于2.7和3.x版本的Python。你知道吗
问题的简单示例:
好的,
html
看起来像这样:我以前的代码:
编辑到上一个答案 我已经检查了html和什么是需要得到的。这个方法和我之前写的很相似,只是有一些小的改动。你知道吗
上面的代码和你写的一样有效。它应该抓住公司所有的人。代码
{'class': 'regrow'} != {'class': 'regroworg'}
中的这一部分为寻找所需的兄弟姐妹发挥了所有的魔力。 结果类似于:现在您可以将数据写入.CSV或其他任何地方。你知道吗
解决当前问题的代码的一些问题
当然,我认为从性能的角度来看,它可以做得更好,但对于当前的问题,它应该是好的。我注意到大约有607个公司的(但我不是100%确定这个数字),但是我的代码提取了396个字典键(例如,公司的)。所以我建议调试代码并修复它。但是我认为这个代码至少解决了你50%的问题,现在只要自己修复它,100%地解决它(我认为解决它很容易)。;)
要仅获取class='company'的tr标记内的人员,必须使用仅选择该Webelements的定位器,例如:
这是一个例子,如何打印的人,与一些更多的努力,你可以把他们保存在一个csv文件。你知道吗
相关问题 更多 >
编程相关推荐