2017-01-20 4 views
-4

Я написал следующие коды для обхода некоторых данных, например, следующие строки не печатаются:код питона ничего

import urllib.request, re 

def get_content(page): 
    url = 'https://www.liepin.com/zhaopin/?sfrom=click-pc_homepage-centre_searchbox-search_new&key=python&curPage=1'.format(page) 
    a = urllib.request.urlopen(url) 
    html = a.read() 
    html = html.decode('utf-8') 
    #print (html) 
    return html 

def get(html): 
    reg = re.compile(r'class="job-info" >[^.]+<span class="job-name" title="(.*?)" >.*?',re.S) 
    items = re.findall(reg, html) 
    return items 

for j in range(1,10): 
    html = get_content(j) 

    for i in get(html): 
     print (i) 
     with open("liepin.txt",'a')as f: 
      f.write(i)` 

Однако, это ничего не печатать. Тогда я сомневаюсь, что это может быть вызвано re, поэтому я проверяю регулярное выражение, но -Regex Pal говорит мне, что мой re прав, он может соответствовать html.

Так может кто-нибудь сказать мне, в чем проблема и как ее решить?

+1

ли 'get_content' работать как надо? Вы проверяли регулярное выражение, чтобы убедиться, что оно работает (https://regex101.com/ - отличное место для этого)? Вы проверили, что возвращает 'get'? –

+0

Он печатает вещи для меня. Букет строк с китайскими символами, обертывающий «Python», например. '招聘 Python 开发 工程师' – Tagc

+0

попробуйте некоторые утверждения печати в вашей функции get до и после регулярного выражения, печати html и элементов печати, таким образом вы можете увидеть, как ваше регулярное выражение каким-то образом удаляет все, несмотря на то, что говорит приятель regex. –

ответ