我尝试从此网页的左侧(http://www.silvan.dk/butikker)提取城市名称。原因是我需要提取每个城市的物理地址(可以在链接引用的页面上找到,但是,对于我开始提取城市名称的时间)。 更确切地说,从这个容器。但是,由于我刚开始使用Python和Beautifulsoup,我无法提取想要的信息。
结果应该给我: 城市,城市链接。
到目前为止,我有:import urllib2
import sys, locale, os, re
import lxml.etree
from bs4 import BeautifulSoup
def cp65001(name):
if name.lower() == 'cp65001':
return codecs.lookup('utf-8')
html_page = urllib2.urlopen("http://www.silvan.dk/butikker",'w')
soup = BeautifulSoup(html_page)
li = soup.select("ul > li > a")
for link in li:
print link.get('href')
这给了我以下输出:
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#12
#13
#14
#15
#16
#17
#18
如果有人能指导我解决方案,我将非常感激。 我累了用
div = soup.find('div', id='leftContent')
lis = div.find_all('li')
num_lis = len(lis)
但是一次运行后停止了工作,我不知道为什么? 谢谢你的时间。
答案 0 :(得分:3)
从以下位置更改选择器:
li = soup.select("ul > li > a")
为:
li = soup.select(".subMenu li a")
输出:
http://www.silvan.dk/butikker/ballerup
http://www.silvan.dk/butikker/birkeroed
http://www.silvan.dk/butikker/city2
http://www.silvan.dk/butikker/esbjerg
http://www.silvan.dk/butikker/fisketorvet
http://www.silvan.dk/butikker/fredericia
http://www.silvan.dk/butikker/frederikshavn
etc
你可以找到非常好的选择器文档here