【问题标题】:List pages (with links) from website by Python通过 Python 列出来自网站的页面(带有链接)
【发布时间】:2021-12-21 05:03:26
【问题描述】:

我正在尝试获取网站页面链接列表。但是我的 URL 有问题。下面的代码只给了我第一页的链接。

import requests
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

page = 1
while page != 6:
      url = f"https://www.autocentrum.pl/stacje-paliw/?strona-{page}/?s=5&order=&q="
      print(url)
      page = page + 1

任何想法如何更改网址来修复它?

【问题讨论】:

  • 你的代码对我来说很好,你能在这个问题上更准确吗。
  • 请注意,例如,如果单击链接 3,则内容仍显示为第一页(所有页面有 400 多页 - autocentrum.pl/stacje-paliw/? s=5&order=&q=)。最后,例如,我想获得指向网站前 5 个页面的 5 个链接。
  • 投反对票,因为您的问题应该包含更多细节并澄清问题。请采取tour 并阅读How to Ask 以改进和edit。谢谢

标签: python pandas beautifulsoup python-requests


【解决方案1】:

正确的代码:

from bs4 import BeautifulSoup as bs
import requests
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

page = 1
while page != 6:
    url = f"https://www.autocentrum.pl/stacje-paliw/strona-{page}/?s={page}&order=&q="
    print(url)
    page = page + 1

【讨论】:

    【解决方案2】:

    我不确切知道预期的输出应该是什么,但对我来说就是这样。您是否可能想更改请求的s=5 参数?

    https://www.autocentrum.pl/stacje-paliw/?strona-1/?s=5&order=&q=
    https://www.autocentrum.pl/stacje-paliw/?strona-2/?s=5&order=&q=
    https://www.autocentrum.pl/stacje-paliw/?strona-3/?s=5&order=&q=
    https://www.autocentrum.pl/stacje-paliw/?strona-4/?s=5&order=&q=
    https://www.autocentrum.pl/stacje-paliw/?strona-5/?s=5&order=&q=
    

    我还建议使用 for 循环。

    for page in range(1,6):
        url = f"https://www.autocentrum.pl/stacje-paliw/?strona-{page}/?s=5&order=&q="
        print(url)
    

    【讨论】:

    • “s”相当于普通的“page”,但同样适用于“strona”。请注意,例如,如果您单击链接 3,则内容仍显示为第一页(所有页面有 400 多个页面 - autocentrum.pl/stacje-paliw/?s=5&order=&q=)。最后,例如,我想获得指向网站前 5 个页面的 5 个链接。
    • 能否提供您想要的链接?我们不知道该网站的运作方式以及您究竟想要哪些页面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 2012-05-20
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多