如何从网页上抓取信息?

时间:2019-02-27 10:44:12

标签: python selenium

我是编程新手,需要我的网络爬虫帮助。

此刻,我让我的代码打开列表中的每个网页。但是,我希望从加载的每个信息中提取信息。这就是我所拥有的。

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)

但是。这会出错。 任何帮助表示赞赏。

2 个答案:

答案 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);