我是python的新手,我在做一件简单的事情时遇到了一些问题。
我有一个html页面,我想分析它并在特定表格中获取一些链接。
在bash中我会使用lynx --source和grep / cut我没有问题..但在Python中我不知道该怎么做..
我想做类似的事情:
import urllib2
data = urllib2.urlopen("http://www.my_url.com")
这样做我得到了整个html页面。
然后我想:
for line in data.read():
if "my_links" in line:
print line
但似乎无法正常工作
答案 0 :(得分:1)
在您的代码问题上,这将逐个字符地读取。如果您没有传递要读取的数据量。
for line in data.read():
你可以这样做:
line = data.readline()
while(line):
print line
line = data.readline()
此部分不完全是答案,但我建议您使用BeautifulSoup。
import urllib2
from BeautifulSoup import BeautifulSoup
url = "http://www.my_url.com"
data = urllib2.urlopen(url).read()
soup = BeautifulSoup.BeautifulSoup(data)
all_links = soup.find('a')
# you can look for specific link
答案 1 :(得分:0)
在一般情况下,您需要Xpath用于这些目的。 示例:http://www.w3schools.com/xpath/xpath_examples.asp
Python有一个名为lxml
的漂亮库:
http://lxml.de/xpathxslt.html
答案 2 :(得分:0)
为什么不简单地使用enumerate()
:
site=urllib2.urlopen(r'http://www.rom.on.ca/en/join-us/jobs')
for i,j in enumerate(site):
if "http://www.ontario.ca" in j: #j is the line
print i+1 #i is the number start from 0 normally in the html code is 1 the first line so add +1
>>620