我使用BeautifulSoup废弃网页。我想将每个网址保存在列表中。但是,操作员+无法正常工作。这是代码:
for a in soup.find_all('a', class_="hotel_name_link url"):
hotel_url = "https://www.booking.com" + a['href']
hotels_url_list.append(hotel_url)
我必须这样做,因为a [' href']属性只获取服务器中的文件位置,而不是整个网址(例如:
/hotel/es/aqua-aquamarina.es.html?label=gen173nr-1BCAEoggJCAlhYSDNYBGigAYgBAZgBCrgBB8gBDNgBAegBAZICAXmoAgM;sid=aa0d6c563b3d74f5432fb5d5b250eee4;ucfs=1;srpvid=2d5d1564170400e8;srepoch=1514343753;room1=A%2CA;hpos=15;hapos=15;dest_type=country;dest_id=197;srfid=198499756e07f93263596e1640823813c2ee4fe1X15;from=searchresults
;highlight_room=#hotelTmpl)
但是当我打印结果时,它会显示以下内容:
如何以BeautifulSoup可以处理的方式连接网址?
答案 0 :(得分:1)
您可以使用urljoin
:
from urlparse import urljoin
hotel_url = urljoin("https://www.booking.com", a['href'])