2011-08-25 39 views
5

tôi sử dụng mã này để có được acces vào liên kết của tôi:Extracting href với Beautiful Soup

links = soup.find("span", { "class" : "hsmall" }) 
links.findNextSiblings('a') 
for link in links: 
    print link['href'] 
    print link.string 

liên kết không có CMND hoặc lớp hoặc bất cứ điều gì, nó chỉ là một liên kết kinh điển với một thuộc tính href.

Câu trả lời của kịch bản của tôi là:

print link['href'] 
TypeError: string indices must be integers 

bạn có thể giúp tôi để có được giá trị href? Thx!

Trả lời

3

Được rồi, nó hoạt động ngay bây giờ với đoạn mã sau:

linkSpan = soup.find("span", { "class" : "hsmall" }) 
link = [tag.attrMap['href'] for tag in linkSpan.findAll('a', {'href': True})] 
for lien in link: 
    print "LINK = " + lien` 
8

Liên kết vẫn đang đề cập đến soup.find của bạn. Vì vậy, bạn có thể làm điều gì đó như:

links = soup.find("span", { "class" : "hsmall" }).findNextSiblings('a') 
for link in links: 
    print link['href'] 
    print link.string 
+0

Hi Chris, cảm ơn vì câu trả lời của bạn. Tôi đã thử với mã của bạn: tôi không có lỗi thời gian này nhưng luôn luôn không có giá trị quá cho href. Tôi không hiểu tại sao. Tôi sẽ thử một cách khác tôi nghĩ .. – Koolen

+0

Được rồi, bây giờ nó hoạt động với một mã khác. – Koolen

+0

@Koolen bạn có muốn đăng mã mới của mình cho chúng tôi không? :) Ngoài ra, nếu Chris trả lời đã giải quyết được vấn đề của bạn (ít nhất là ở một mức độ nào đó), bạn có thể [đánh dấu nó là câu trả lời chính xác] (http://meta.stackexchange.com/questions/5234/how-does -chấp nhận-an-trả lời-công việc). – brandizzi

Các vấn đề liên quan