クローラーは、Webページのタイトルと対応するURLリンクをクロールします

Pythonクローラーを使用してWebページの情報をクロールする方法は?

例としてBooksto Scrapeを取り上げ、アドレス:http//books.toscrape.com/

まず、リクエストライブラリとBeautifulSoupをインポートします

import requests 
from bs4 import BeautifulSoup

URLのソースコード情報を取得する

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

F12または右クリックして、Webページコードを確認します。
ここに画像の説明を挿入
本のタイトルが<li>ブロックにあることを確認し、beauオブジェクトを作成して、findステートメントを検索します。
BeautifulSoupを介してソースコードを受信および配置するための空のリストを作成します。

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

beauオブジェクトをトラバースするようにパラメータqを設定します。別のeach1オブジェクトを追加して、パラメーターqのハイパーリンク部分を見つけます。次に、2つのパラメーターiとxを設定して、enumerateとbook_listをトラバースし、それぞれループに出力します:シーケンス、本のタイトル、アドレスリンク。

(列挙関数は0から開始するため、出力順序を1から開始する場合は、i + 1を実行し、リンク部分の各1オブジェクトの「href」を選択します)

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')

この時点で、「シーケンス+本のタイトル+ URLリンク」を取得できます。Python
ここに画像の説明を挿入
の本質は「効率的」です!
最後に、本のタイトルと対応するURLリンクをクロールするために必要なコードの簡略版、クロールを実現するための8行のコードを添付してください。

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')

おすすめ

転載: blog.csdn.net/JasonZ227/article/details/109556770