【问题标题】:How to scrape multiple links stored in a list如何抓取存储在列表中的多个链接
【发布时间】:2019-03-29 14:47:20
【问题描述】:

我正在尝试通过将每个页码应用于 url 然后将 url 存储在列表中来抓取 url 的多个页面。 执行迭代时,仅抓取第一页的内容,而不抓取其余内容。错在哪里?

df = pd.DataFrame()
list_of_links = []
url = 'https://marknadssok.fi.se/publiceringsklient?Page='
    for link in range(1,10):
        urls = url + str(link)
        list_of_links.append(urls)

 #Establish connection

    for i in list_of_links:
        r = requests.get(i)
        html = BeautifulSoup(r.content, "html.parser")

#Append each column to it's attribute

        table_body=html.find('tbody')
        rows = table_body.find_all('tr')
        data = []
        for row in rows:
            cols=row.find_all('td')
            cols=[x.text.strip() for x in cols]
            data.append(cols)

df = pd.DataFrame(data, columns=['Publiceringsdatum', 'utgivare', 'person', 'befattning',
                             'Närstående', 'karaktär', 'Instrumentnamn', 'ISIN', 'transaktionsdatum',
                             'volym', 'volymsenhet', 'pris', 'valuta', 'handelsplats', 
                             'status', 'detaljer' ])

【问题讨论】:

  • 您发布的代码有一些错误。修改第 5 行缩进。第 6 行变量页应该是链接???
  • @wonka 我的错误,对不起!修复它
  • 这可能是因为需要 cookie。尝试在附加链接之前打印链接,并在 pythonipython 提示符中手动转储 html。
  • @PMHui 链接似乎在提示中有效,做了一个 requests.get 并没有产生任何错误/失败

标签: python python-3.x list loops web-scraping


【解决方案1】:

问题是存储来自url的内容的数据变量是for循环的意思。通过将其从for循环中取出来解决它

【讨论】:

    猜你喜欢
    • 2021-03-14
    • 2017-09-07
    • 2021-01-12
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 2021-12-27
    • 2020-06-16
    • 1970-01-01
    相关资源
    最近更新 更多