【问题标题】:i want to loop over some link using beautifulsoup which are in csv file我想使用csv文件中的beautifulsoup遍历一些链接
【发布时间】:2020-10-01 22:52:42
【问题描述】:

我有 2 个 CSV 文件,在其中我将所需的链接提取到 CSV 中,在其他 CSV 中,我从同一网站但不同的页面提取所需的链接。我无法一个一个地循环链接,请给我一些建议,以便我可以做到

from bs4 import BeautifulSoup
import requests
import pandas as pd
import urllib.request  
data = pd.read_csv("link.csv")
data2 = pd.read_csv("requiredlink.csv")
data2.columns = ["required"]

data.columns = ["aname", "links"]
alllinks = []
requiredlinks = []
alllinks = list(data.links)
print(alllinks)

for link in alllinks:
    r = urllib.request.urlopen(link).read()
    soup = BeautifulSoup(r, 'html.parser')

上面我试过但我卡住了, 1 CSV 文件名为 alllinks 2 CSV 文件名是必需的link

【问题讨论】:

  • print(alllinks) 此行是否打印 csv 中的所有链接?
  • 第一个 csv 是的
  • 然后for link in alllinks:这一行会一一循环。到底是什么问题?
  • 我有 2 个 CSV 文件,我的文件有 20 个链接,其他有 30 个,我想循环遍历一个,首先它从 1 个 CSV 获取第一个链接,然后遍历第二个 CSV 中的所有链接,然后它需要第二个链接并遍历第二个 CSV 中的所有链接

标签: python python-3.x selenium selenium-webdriver beautifulsoup


【解决方案1】:

所以,你需要嵌套循环。 让,变量 allLinksOfFirstFile 包含第一个文件的所有链接,而 allLinksOfSecondFile 包含第二个文件的所有链接。

for firstFilesLink in allLinksOfFirstFile:
    print(firstFilesLink)
    # this is the link of your first file
    for secondFilesLink in allLinksOfSecondFile:
        print(secondFilesLink)
        #here secondFilesLink is each link of second file for firstFilesLink
        #do other tasks

【讨论】:

  • 谢谢你,我用的是漂亮的汤,所以我想打开链接,那我该怎么办,我正在尝试这个' url = urllib.request.urlopen(link).read() soup = BeautifulSoup(url,from_encoding="utf-8" 'html.parser') #soup = BeautifulSoup(requests.get(url).content, 'html.parser') print(soup)
猜你喜欢
  • 2016-10-12
  • 1970-01-01
  • 2020-10-29
  • 1970-01-01
  • 2019-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多