2016-08-04 3 views
0

Когда я запускаю скрипт, результат пуст. Зачем? Сценарий связан с сайтом и разобрать HTML тег <a>:HTTP-запрос и регулярное выражение в Python для анализатора HTML

#!/usr/bin/python3 

import re 
import socket 
import urllib, urllib.error 
import http.client 
import sys 

conn = http.client.HTTPConnection('www.guardaserie.online'); 
headers = { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
       "Content-type": "application/x-www-form-urlencoded; charset=UTF-8" } 
params = urllib.parse.urlencode({"s":"hannibal"}) 
conn.request('GET', '/',params, headers) 
response = conn.getresponse(); 

site = re.search('<a href="(.*)" class="box-link-serie">', str(response.read()), re.M|re.I) 
if(site): 
    print(site.group()) 
+1

Возможные дубликаты [тегов OpenEx Open, за исключением тегов XHTML, содержащихся в автономном режиме) (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) –

ответ

1

Вполне вероятно, шаблон вы ищете не существует в ответ на чтение, или дроссели в какой-то момент, пытаясь разобрать HTML.

re.search('href="(.*)" class="box-link-serie"', str(response.read()), re.M | re.I) 

Использование чего-то более общего или другого метода парсера, скорее всего, приведет вас к желаемому результату.

+0

все еще не работает – faserx

+0

Если вы попробовали шаблон выше, он должен вернуть результат. Я бы порекомендовал вам попробовать использовать эти импорты: 'import re, httplib, socket, urllib, sys' и изменить' params = urllib.urlencode', а также 'conn = httplib.HTTPConnection' ... –

+0

шаблон возвращает all html page – faserx

 Смежные вопросы

  • Нет связанных вопросов^_^