Le robot d'exploration explore le titre de la page Web et le lien URL correspondant

Comment utiliser le robot d'exploration Python pour analyser des informations sur des pages Web?

Prenons l'exemple de Books to Scrape, à l'adresse: http://books.toscrape.com/

Importez d'abord la bibliothèque de requêtes et BeautifulSoup

import requests 
from bs4 import BeautifulSoup

Obtenez les informations de code source de l'URL

url = 'http://books.toscrape.com/'
res = requests.get(url)
print(res.status_code)	# 查看是否获取成功,成功则显示200
html = res.text

F12 ou cliquez avec le bouton droit pour vérifier le code de la page Web.
Insérez la description de l'image ici
Vous pouvez voir que le titre du livre est dans le bloc <li>, créer un objet beau et rechercher dans l'instruction find.
Nous créons une liste vide pour recevoir et positionner le code source via BeautifulSoup.

book_list = []	# 空列表用于后面的接收
soup = BeautifulSoup(html, 'lxml')
beau = soup.find('ul', class_='nav nav-list').find('ul').find_all('li')

Définissez le paramètre q pour parcourir l'objet beau. Ajoutez un autre objet each1 pour trouver la partie lien hypertexte dans le paramètre q. Ensuite, définissez les deux paramètres i et x pour parcourir l'énumération et la liste de livres, et respectivement la sortie dans la boucle: séquence, titre du livre et lien d'adresse.

(La fonction d'énumération commence à 0, donc si vous voulez que l'ordre de sortie commence à 1, faites i + 1; sélectionnez le 'ref' de each1 objet dans la partie lien)

for q in beau:
    book_list.append(q.a.text.strip())	# 此时,用book_list接收书名文字
each1 = q.find('a')	
for i, x in enumerate(book_list):
    print(i+1, '书名:' + x + '\t 网址:' + url + each1['href'] + '\n')

À ce stade, vous pouvez obtenir: "Séquence + Titre du livre + Lien URL"
Insérez la description de l'image ici
L'essence de Python est "efficace"!
Enfin, attachez la version simplifiée du code nécessaire pour crawler le titre du livre et le lien URL correspondant, 8 lignes de code pour réaliser l'exploration!

import requests
from bs4 import BeautifulSoup
beau = BeautifulSoup(requests.get('http://books.toscrape.com/').text, 'lxml').find('ul', class_='nav nav-list').find('ul').find_all('li')
book_list = []
for q in beau:
    book_list.append(q.a.text.strip())
for i, x in enumerate(book_list):
    print(i+1, '书名:' + x + '\t 网址:' + 'http://books.toscrape.com/' + q.find('a')['href'] + '\n')

Je suppose que tu aimes

Origine blog.csdn.net/JasonZ227/article/details/109556770
conseillé
Classement