tôi đang sử dụng mô-đun BeautifulSoup để chọn tất cả href từ html bằng cách này:Python mô-đun BeautifulSoup neo chiết href
def extract_links(html):
soup = BeautifulSoup(html)
anchors = soup.findAll('a')
print anchors
links = []
for a in anchors:
links.append(a['href'])
return links
nhưng đôi khi nó thất bại bằng tin nhắn này lỗi:
Traceback (most recent call last):
File "C:\py\main.py", line 33, in <module>
urls = extract_links(page)
File "C:\py\main.py", line 11, in extract_links
links.append(a['href'])
File "C:\py\BeautifulSoup.py", line 601, in __getitem__
return self._getAttrMap()[key]
KeyError: 'href'
Cảm ơn, nhưng bây giờ IR trở lại thông báo lỗi này: Traceback (gần đây nhất gọi cuối cùng): File "C: \ py \ chính .py ", dòng 34, trong url = extract_links (trang) Tệp" C: \ py \ main.py ", dòng 11, trong extract_links nếu 'href' trong a.keys(): LoạiError: ' Đối tượng NoneType không được gọi là –
Michal
@micheal Bạn đang đặt các thẻ 'a' trong từ điển của mình mà không có thuộc tính' href'. Thay vì yêu cầu từ điển ho lên các thẻ có thể hoặc không thể đưa ra thuộc tính 'href', hãy hỏi dữ liệu nếu nó * trước * đưa nó vào từ điển. – Droogans
Tôi nghĩ rằng lỗi mới là bởi vì một nút BeautifulSoup không phải là một từ điển, do đó, các phím 'không phải là những gì bạn mong đợi. –