循环浏览网站并将信息保存到数据框

Looping through websites and saving information to dataframe

为清楚起见重新提交。

我正在尝试使用 Python 循环访问网站列表并以数据框的形式从每个网站(即每个网站)中提取信息(位置、管理下的 $$$、合作伙伴等)将有自己的数据框)。

但是,当我将代码放入如下所示的 for 循环中时,它只会从列表中的第一个网站提取信息。我的代码中没有收到任何错误,它只是在第一个循环后终止。我不确定为什么它不进入第二个循环。我试过在循环内外移动 driver.quit() 但都没有用。

代码如下:

from bs4 import BeautifulSoup
import numpy as np
from time import sleep
from random import randint
from selenium import webdriver
import pandas as pd
import spacy
from spacy import displacy
import requests
import re
import en_core_web_sm
nlp = en_core_web_sm.load()
NER = spacy.load("en_core_web_sm")

final_list = ['https://www.google.com','https://www.bing.com', 'https://www.amazon.com']
pd.set_option("display.max_rows", None, "display.max_columns", None)

df = []

for i in range(0,2):
    driver = webdriver.Chrome("C:/Users/~~~/chromedriver.exe")
    url = final_list[i]
    driver.get(url)  
    sleep(randint(5,15))
    soup = BeautifulSoup(driver.page_source, 'html.parser')
    body=soup.body.text
    body = ' '.join(body.split())
    text3= NER(body)  
    displacy.render(text3,style="ent",jupyter=True)
    doc = NER(body)
    entities = [(e.label_,e.text) for e in doc.ents]  
  
    df[i] = pd.DataFrame(entities, columns=['Entity','Identified'])

driver.quit()

变化:

df[i] = pd.DataFrame(entities, columns=['Entity','Identified'])

至:

df.append(pd.DataFrame(entities, columns=['Entity','Identified']))