Ich kratzte erfolgreich die erste Seite der Website, aber wenn ich versuchte, mehrere Seiten zu kratzen, funktionierte es, aber das Ergebnis ist völlig falsch.Kratzen mehrere Seiten mit Loops in Python
Code:
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin
for num in range(1,15):
res = requests.get('http://www.abcde.com/Part?Page={num}&s=9&type=%8172653').text
soup = BeautifulSoup(res,"lxml")
for item in soup.select(".article-title"):
print(urljoin('http://www.abcde.com',item['href']))
Es änderte nur eine Nummer in jeder URL der Seite, zum Beispiel
http://www.abcde.com/Part?Page=1&s=9&type=%8172653
http://www.abcde.com/Part?Page=2&s=9&type=%8172653
ich insgesamt 14 Seiten dieser bekam.
Mein Code funktionierte, aber es druckt nur wiederholt die URL der ersten Seite für 14 Mal. Das Ergebnis, das ich erwartet hatte, war, alle verschiedenen URLs von verschiedenen Seiten mit Loops auszudrucken.
Sie formatieren die Zeichenfolge tatsächlich nicht, um die Zahl darin zu ersetzen ... Sie müssen also entweder die Zeichenfolge mit "f" voranstellen, wenn Sie 3.6+ oder sonst '.format (num = num)' verwenden die Zeichenfolge, um die Seitenzahl in ... –