0
Для этого кода я конвертирую рабочий веб-браузер python с 2,7 до 3,4. Я сделал некоторые изменения, но я все еще получаю ошибки при его запуске:Преобразование python webcrawler в 3.4 из 2.7
Traceback (most recent call last):
File "Z:\testCrawler.py", line 11, in <module>
for i in re.findall('''href=["'](.[^"']+)["']''', urllib.request.urlopen(myurl).read(), re.I):
File "C:\Python34\lib\re.py", line 206, in findall
return _compile(pattern, flags).findall(string)
TypeError: can't use a string pattern on a bytes-like object
Это сам код, пожалуйста, скажите мне, если вы видите, что ошибки синтаксиса.
#! C:\python34
import re
import urllib.request
textfile = open('depth_1.txt','wt')
print ("Enter the URL you wish to crawl..")
print ('Usage - "http://phocks.org/stumble/creepy/" <-- With the double quotes')
myurl = input("@> ")
for i in re.findall('''href=["'](.[^"']+)["']''', urllib.request.urlopen(myurl).read(), re.I):
print (i)
for ee in re.findall('''href=["'](.[^"']+)["']''', urllib.request.urlopen(i).read(), re.I):
print (ee)
textfile.write(ee+'\n')
textfile.close()
вам нужно декодировать ответ от 'read' в' str'. – roippi
Хотя пожалуйста - используйте парсер HTML для разбора html, а не для регулярного выражения. – roippi