如何获取存储在csv文件中的url列表,并将它们导入python,然后使用新收集的d将其导出回csv

2024-06-08 04:41:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python和BeautifulSoup非常陌生,我正试图用它同时使用一个循环来抓取多个url。这个循环将包括在每个网站的主页上定位横幅幻灯片,并获得该网站有多少横幅的长度,并将它们放入对应的url旁边的excel文件中。我有一个保存在csv文件中的url列表,基本上我要做的是获取每个url并运行循环,提取横幅的数量,并将url旁边的数字放入excel中的单独列中。在

这是我到目前为止的代码,它为我做的就是把网址写回一个csv文件,并给我的横幅数量只为最后一个网址。在

from bs4 import BeautifulSoup 
import requests

with open("urls.csv", "r") as f:
csv_raw_cont=f.read()

split_csv=csv_raw_cont.split('\n')

split_csv.remove('')

separator=';'

filename = "DDC_number_of_banners.csv"
f = open(filename, "w")

headers = "url, Number_of_Banners\n"

f.write(headers)

for each in split_csv:
    url_row_index=0
    url = each.split(separator)[url_row_index]
    html = requests.get(url).content
    soup= BeautifulSoup(html, "html.parser")

    banner_info = soup.findAll('div',{'class':['slide', 'slide has-link', 
'html-slide slide has-link']})

    Number_of_banners = len(banner_info)

f.write(csv_raw_cont + "," + str(Number_of_banners) + "," + "\n")

f.close()

Tags: 文件ofcsvurlnumberraw网站html
1条回答
网友
1楼 · 发布于 2024-06-08 04:41:43

使用Python的CSV库将使这一点变得简单:

from bs4 import BeautifulSoup 
import requests
import csv

with open("urls.csv", "r") as f_urls, open("DDC_number_of_banners.csv", "w", newline="") as f_output:
    csv_output = csv.writer(f_output)
    csv_output.writerow(['url', 'Number_of_banners'])

    for url in f_urls:
        url = url.strip()
        html = requests.get(url).content
        soup = BeautifulSoup(html, "html.parser")
        banner_info = soup.findAll('div',{'class':['slide', 'slide has-link', 'html-slide slide has-link']})
        csv_output.writerow([url, len(banner_info)])

要包含诸如每个横幅的data-label之类的信息:

^{pr2}$

相关问题 更多 >

    热门问题