【发布时间】:2019-02-24 05:40:14
【问题描述】:
我想从所有页面获取链接,已经有了这个代码,但是当我运行代码时它总是显示错误(返回 self.attrs[key])KeyError : 'href'。有没有人可以帮忙,谢谢。这是代码:
from bs4 import BeautifulSoup
import urllib.request
import requests
url = "http://makeupuccino.com/makeup/faces/foundation?page={}"
def get_url(url):
req = urllib.request.Request(url)
return urllib.request.urlopen(req)
link = []
nama = []
merek = []
harga = []
gambar = []
deskripsi = []
page = 1
while (requests.get(url.format(page)).status_code==200):
res = requests.get(url.format(page))
print(res.url)
soup = BeautifulSoup(res.content,"html.parser")
items = soup.findAll("div",{"class":"product-block-inner"})
if len(items)<=1:break #untuk stop ketika produk tidak ditemukan lagi di page selanjutnya
for item in items:
new_link = item.find("div",{"class":"image"})
print(new_link["href"])
page+=1
【问题讨论】:
-
你可以使用 lxml 和 xpath 获得更好的运气,比如
//a/@href。
标签: python web-scraping pagination beautifulsoup web-crawler