我是编程新手,需要我的网络爬虫帮助。
此刻,我让我的代码打开列表中的每个网页。但是,我希望从加载的每个信息中提取信息。这就是我所拥有的。
from selenium import webdriver
import csv
driver = webdriver.Firefox()
links_code = driver.find_elements_by_xpath('//a[@class="in-match"]')
first_two = links_code[0:2]
first_two_links = []
for i in first_two:
link = i.get_attribute("href")
first_two_links.append(link)
for i in first_two_links:
driver.get(i)
这会循环浏览前两页,但不会刮擦任何信息。所以我尝试如下添加到for循环中
odds = []
for i in first_two_links:
driver.get(i)
driver.find_element_by_xpath('//span[@class="table-main__detail-
odds--hasarchive"]')
odds.append(odd)
但是。这会出错。 任何帮助表示赞赏。
答案 0 :(得分:0)
首先,启动驱动程序后,您需要访问一个网站...
第二,在第二个for循环中,您尝试附加错误的对象...使用i
而不是odd
或使用odd = driver.find_element_by_xpath('//span[@class="table-main__detail-odds--hasarchive"]')
如果您可以提供URL或HTML,我们可以提供更多帮助!
尝试一下(我以Google为例,您需要更改代码...):
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://www.google.com")
links_code = driver.find_elements_by_xpath('//a')
first_two = links_code[0:2]
first_two_links = []
for i in first_two:
link = i.get_attribute("href")
first_two_links.append(link)
print(link)
odds = []
for i in first_two_links:
driver.get(i)
odd = driver.page_source
print(odd)
# driver.find_element_by_xpath('//span[@class="table-main__detail- odds--hasarchive"]')
odds.append(odd)
答案 1 :(得分:0)
您实际上并没有添加任何内容!您需要为
分配一个变量driver.find_element_by_xpath('// span [@ class =“ table-main__detail- 赔率-具有存档功能“]')
然后将其添加到列表中!
from selenium import webdriver;
import csv;
driver = webdriver.Firefox();
links_code : list = driver.find_elements_by_xpath('//a[@class="in-match"]');
first_two : list = links_code[0:2];
first_two_links : list = [];
i : int;
for i in first_two:
link = i.get_attribute("href");
first_two_links.append(link);
for i in first_two_links:
driver.get(i);
odds : list = [];
i :int;
for i in first_two_links:
driver.get(i);
o = driver.find_element_by_xpath('//span[@class="table-main__detail- odds--hasarchive"]');
odds.append(o);