好的,所以我是python的新手,当然还有Selenium。我正在尝试抓取一个页面来获取数据,然后在python中处理这些数据,并有selenium点击链接和存储时间等...
我遇到的问题是页面没有按我喜欢的方式格式化。而不是这个...... 标题 链接1 LINK2 标题2 LINK3 LINK4 / A> 我有这个
<tr>
<td>title<td>
</tr>
<tr>
<td>
<a href>link1</a>
</td>
</tr>
<tr>
<td>
<a href>link2</a>
</td>
</tr>
<tr>
<td>
<a href>link3</a>
</td>
</tr>
继承我正在使用的HTML - http://pastebin.com/663T7mXc
我要做的是,获取所有链接,但根据它们的标题对它们进行分类。例如。 标题 链接1 链接2 标题2 链接3 链接4 链接5 标题3 链接6
等等。
由于链接不是与标题相同标记的子代,我发现它几乎不可能。
这是我到目前为止所拥有的
def test():
print ("testing")
browser = webdriver.Chrome()
browser.get("http://urlforpage.com")
meetings = browser.find_elements_by_xpath('/html/body/div[2]/table[2]/tbody/tr/td')
i=0
for meet in meetings:
venue = meet.get_attribute("class")
if venue == "bold":
print "Venue: " + str(i) + " " + meet.text
i+=1
elif venue == "racing-insert-linked-events nextoff-inner-wrapper nextoff-scrollable-wrapper":
print ("links")
print venue.href
test()
我根据班级的“大胆”课程将标题拉出来,我的问题是,我不知道如何为其他标签内的链接提取网址和链接文字。
非常感谢任何帮助。感谢
答案 0 :(得分:0)
尝试尽可能少地更改代码,这就是您所追求的目标吗?
def test():
print ('testing')
browser = webdriver.Chrome()
browser.get('http://urlforpage.com')
meetings = browser.find_elements_by_xpath('/html/body/div[2]/table[2]/tbody/tr/td')
for meet in meetings:
if meet.get_attribute('class') == 'bold':
print 'Venue: {venue}'.format(venue=meet.text)
else:
try:
anchor = meet.find_element_by_tag_name('a')
print 'link: {link}, text: {text}'.format(link = anchor.get_attribute('href'), text = anchor.text)
except NoSuchElementException:
pass # Are you worried if something is neither a title (bold) nor contains an anchor?
test()