需要对执行以下操作的某些代码进行一些故障排除:
1)从网页中抓取链接
2)从网页中抓取链接的文字 同一页
在提取链接和将其写为单个列方面取得了一些成功:
elements = driver.find_elements_by_xpath("//a[@href]")
with open('csvfile01.csv', "w", newline='') as output:
writer = csv.writer(output)
for element in elements:
writer.writerow([element.get_attribute("href")])
不幸的是,当涉及到:
1)获取链接的“文本” ,然后
2)将其导出为单独的列...
3)抓取网页的特定部分以获取链接,例如在表格(“ td”)或div部分中
现在的代码:
from selenium import webdriver
import time
import csv
driver = webdriver.Chrome()
driver.get("https://en.wikipedia.org/wiki/Main_Page")
time.sleep(5)
columns = ['text', 'link']
e1 = driver.find_element_by_css_selector("a")
e2 = driver.find_elements_by_xpath("//a[@href]")
elements = zip(e1,e2)
time.sleep(5)
with open('csvfile01.csv', "w", newline='') as output:
writer = csv.writer(output)
for element in elements:
writer.writerow(columns)
writer.writerows(elements)
driver.quit()
任何建议将不胜感激。谢谢!
答案 0 :(得分:1)
就获取文本而言,您可以执行.text,并且考虑到它只是“ a”,您的css选择器剂量也似乎是正确的,要获取xpath / css选择器,只需检查元素并右键单击它,然后单击复制后,您会得到要复制的东西的列表,我使用硒并不多,但是当我使用它时,我在xpath中注意到只有1个数字会发生变化(例如,如果它是代理表),所以我只定义了一个计数器并循环增加