亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 Python BeautifulSoup 返回一個空列表?

為什么 Python BeautifulSoup 返回一個空列表?

MYYA 2023-07-27 15:55:19
我是 IT 專業的菜鳥學生,我試圖幫助我的朋友完成工作,我想創建一個他可以服務的客戶列表(也許將其導出到文件中也很棒,但我稍后會考慮)猜測)。當我嘗試運行代碼時,它只返回一個空列表,您有什么建議嗎?任何建議/反饋將不勝感激!謝謝你?。ㄎ抑酪苍S這不是您見過的最好的代碼!所以我提前向自己道歉?。﹊mport requestsfrom bs4 import BeautifulSoupimport pprintres = requests.get('https://www.paginebianche.it/toscana/li/gommisti.html')res2 = requests.get('https://www.paginebianche.it/ricerca?qs=gommisti&dv=li&p=2')soup = BeautifulSoup(res.text, 'html.parser')soup2 = BeautifulSoup(res2.text, 'html.parser')links = soup.select('.org fn')subtext = soup.select('.address')links2 = soup2.select('.org fn')subtext2 = soup2.select('.address')mega_links = links + links2mega_subtext = subtext + subtext2def create_custom_hn(mega_links,mega_subtext):  hn = []  for links,address in enumerate(mega_links):    title = links.getText()    address= address.getText()    hn.append({'title': title, 'address': address})  return hn pprint.pprint(create_custom_hn(mega_links,mega_subtext))
查看完整描述

1 回答

?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

選擇器.org fn是錯誤的,應該.org.fn選擇所有具有 classorg和 的元素fn。


但是,有些項目沒有.address這樣,您的代碼會產生傾斜的結果。您可以使用此示例來獲取標題和地址(如果缺少地址,-則使用 ):


import pprint

import requests

from itertools import chain

from bs4 import BeautifulSoup



res = requests.get('https://www.paginebianche.it/toscana/li/gommisti.html')

res2 = requests.get('https://www.paginebianche.it/ricerca?qs=gommisti&dv=li&p=2')

soup = BeautifulSoup(res.text, 'html.parser')

soup2 = BeautifulSoup(res2.text, 'html.parser')


hn = []


for i in chain.from_iterable([soup.select('.item'), soup2.select('.item')]):

    title = i.h2.getText(strip=True)

    addr = i.select_one('[itemprop="address"]')

    addr = addr.getText(strip=True, separator='\n') if addr else '-'

    hn.append({'title': title, 'address': addr})    


pprint.pprint(hn)

印刷:


[{'address': 'Via Don Giovanni Minzoni 44\n-\n57025\nPiombino (LI)',

  'title': 'CENTROGOMMA'},

 {'address': 'Via Quaglierini 14\n-\n57123\nLivorno (LI)',

  'title': 'F.LLI CAPALDI'},

 {'address': 'Via Ugione 9\n-\n57121\nLivorno (LI)',

  'title': 'PNEUMATICI INTERGOMMA GOMMISTA'},

 {'address': "Viale Carducci Giosue' 88/90\n-\n57124\nLivorno (LI)",

  'title': 'ITALMOTORS'},

 {'address': 'Piazza Chiesa 53\n-\n57124\nLivorno (LI)',

  'title': 'Lo Coco Pneumatici'},

 {'address': '-', 'title': 'PIERO GOMME'},

 {'address': 'Via Pisana Livornese Nord 95\n-\n57014\nVicarello (LI)',

  'title': 'GOMMISTA TRAVAGLINI PNEUMATICI'},

 {'address': 'Via Cimarosa 165\n-\n57124\nLivorno (LI)',

  'title': 'GOMMISTI CIONI AUTORICAMBI & SERVIZI'},

 {'address': 'Loc. La Cerretella, 219\n-\n57022\nCastagneto Carducci (LI)',

  'title': 'AURELIA GOMME'},

 {'address': 'Strada Provinciale Vecchia Aurelia 243\n'

             '-\n'

             '57022\n'

             'Castagneto Carducci (LI)',

  'title': 'AURELIA GOMME DI GIANNELLI SIMONE'},


...and so on.


查看完整回答
反對 回復 2023-07-27
  • 1 回答
  • 0 關注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號