私はPythonを初めて使うので、助けてください。私は以下のWebクローラを作成しましたが、すべてのページをクロールするわけではなく、わずか2ページです。すべてのページをクロールするためには、どのような変更を加える必要がありますか?My BeautifulSoupスパイダーは全ページではなく2ページしかクロールしません
def trade_spider(max_pages)ループを参照してください。その下にはtrade_spider(18)があり、すべてのページをループする必要があります。
ありがとうございました。
import csv
import re
import requests
from bs4 import BeautifulSoup
f = open('dataoutput.csv','w', newline= "")
writer = csv.writer(f)
def trade_spider(max_pages):
page = 1
while page <= max_pages:
url = 'http://www.zoopla.co.uk/for-sale/property/nottingham/?price_max=200000&identifier=nottingham&q=Nottingham&search_source=home&radius=0&pn=' + str(page) + '&page_size=100'
source_code = requests.get(url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text)
for link in soup.findAll('a', {'class': 'listing-results-price text-price'}):
href = "http://www.zoopla.co.uk" + link.get('href')
title = link.string
get_single_item_data(href)
page += 1
def get_single_item_data(item_url):
source_code = requests.get(item_url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text)
for item_name in soup.findAll('h2', {'itemprop': 'streetAddress'}):
address = item_name.get_text(strip=True)
writer.writerow([address])
trade_spider(18)
エラーが発生しているか、正常に終了していますか? 'page'変数はそれを18にするのか、まさに2にするのでしょうか? –