簡體   English   中英

python beautifulsoup 下一頁

[英]python beautifulsoup next page

這是我當前用於從站點中抓取特定玩家數據的代碼:

import requests
import urllib.request
import time
from bs4 import BeautifulSoup
import pandas as pd
from pandas import ExcelWriter
import lxml
import xlsxwriter

page = requests.get('https://www.futbin.com/players?page=1')
soup = BeautifulSoup(page.content, 'lxml')
pool = soup.find(id='repTb')

pnames = pool.find_all(class_='player_name_players_table')
pprice = pool.find_all(class_='ps4_color font-weight-bold')
prating = pool.select('span[class*="form rating ut20"]')


all_player_names = [name.getText() for name in pnames]
all_prices = [price.getText() for price in pprice]
all_pratings = [rating.getText() for rating in prating]

fut_data = pd.DataFrame(
    {
        'Player': all_player_names,
        'Rating': all_pratings,
        'Price': all_prices,
     })

writer = pd.ExcelWriter('file.xlsx', engine='xlsxwriter')

fut_data.to_excel(writer,'Futbin')
writer.save()

print(fut_data)

這對於第一頁工作正常。 但是我總共需要瀏覽 609 頁並從所有頁面中獲取數據。

你能幫我重新編寫這段代碼以使其正常工作嗎? 我還是個新手,正在學習這個項目。

您可以遍歷所有609頁面,解析每個頁面,最后將收集的數據保存到file.xlsx

import requests
from bs4 import BeautifulSoup
import pandas as pd

all_player_names = []
all_pratings = []
all_prices = []

for i in range(1, 610):
    page = requests.get('https://www.futbin.com/players?page={}'.format(i))
    soup = BeautifulSoup(page.content, 'lxml')
    pool = soup.find(id='repTb')

    pnames = pool.find_all(class_='player_name_players_table')
    pprice = pool.find_all(class_='ps4_color font-weight-bold')
    prating = pool.select('span[class*="form rating ut20"]')

    all_player_names.extend([name.getText() for name in pnames])
    all_prices.extend([price.getText() for price in pprice])
    all_pratings.extend([rating.getText() for rating in prating])

fut_data = pd.DataFrame({'Player': all_player_names,
                         'Rating': all_pratings,
                         'Price': all_prices})

writer = pd.ExcelWriter('file.xlsx', engine='xlsxwriter')
fut_data.to_excel(writer, 'Futbin')
writer.save()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM