我正在使用BeautifulSoup框架在python中使用Web搜寻器。
我从目标页面获得了正确的信息。但是每页只有1个项目。

我的代码如下所示:

import csv
import time
import bs4 as bs
from urllib.request import Request, urlopen

for i in range(1, 5):
   site = "XXURLXX".format(i)
   hdr = {'User-Agent': 'Mozilla/5.0'}
   req = Request(site, headers=hdr)
   page = urlopen(req)
   soup = bs.BeautifulSoup(page, 'html5lib')

data = []

for get_info in soup:
    name_box = soup.find('h2', attrs={'class': 'post-title'})
    name = name_box.text.strip()


    url_box = soup.find('a', attrs={'class': 'post-excerpt-download'})
    url = url_box.get('href')

data.append((name, url, site))

time.sleep(1)

print(data)

with open('stellarismods.csv', 'a') as csv_file:
    writer = csv.writer(csv_file)
    for url in data:
        writer.writerow([name, url, site])


我已经尝试过forloop

for name_box in soup.find('h2', attrs={'class': 'post-title'}):
       name = name_box.text.strip()


for url_box in soup.find('a', attrs={'class': 'post-excerpt-download'}):
    url = url_box.get('href')


但是我仍然从每一页中仅获得一项。

最佳答案

尝试find_all函数。它将查找您要查找的所有元素。

关于python - Python BeautifulSoup每页仅获得一项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45708633/

10-12 13:09