Анализировать и получить ссылку со страницы HTML - PullRequest
2 голосов
/ 06 декабря 2011

Я новичок в 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

Но, похоже, это не работает

Ответы [ 3 ]

1 голос
/ 06 декабря 2011

В вашем коде проблема будет читать символ за символом.Если вы не передаете объем данных для чтения.

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
0 голосов
/ 26 апреля 2014

Почему бы вам не использовать просто 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 
0 голосов
/ 06 декабря 2011

Вам нужен Xpath для этих целей в общем случае. Примеры: http://www.w3schools.com/xpath/xpath_examples.asp

В Python есть красивая библиотека под названием lxml: http://lxml.de/xpathxslt.html

...