Ну и? Разбирайтесь почему. Нужный элемент есть в скачанном HTML?
Скачивайте с помощью urllib, а не lxml
#!/usr/local/bin/python3 from lxml import html HTMLtree = html.parse("http://www.pleer.ru/cifrovye-fotoapparaty~69.html") name = HTMLtree.xpath("//h1[@class='disableH1']/text()") print("name={0}".format(name))
lorien
Скачивайте с помощью urllib, а не lxml
asphixлучше проэкранируй бекслеш'csv\{0}.csv'.format(p_filename)
asphixкомментируй через #, тройные кавычки как комментарий - для docstringcameras = {'pos1':62, 'pos2':69, 'pos3':157, 'pos4':44, 'pos5':19, 'pos6':2, 'pos7':45, 'pos8':11, 'pos9':1} """ code """ for cam in cameras:
for cam in cameras: s_lines = parse(url.format(cameras[cam])) save_csv("{0}_{1}".format(cam, len(s_lines)), s_lines)
for cam in cameras: s_lines = parse(url.format(cameras[cam])) print('parts:', cam, cameras[cam], url) print('joined1:', url.format(cameras[cam])) print('joined2:', "{0}_{1}".format(cam, len(s_lines))) print('list:', s_lines) input() save_csv("{0}_{1}".format(cam, len(s_lines)), s_lines)
py.user.nextпод никсами путь выглядит как ‘csv/{0}.csv’ - экранировка не обязательна. Для винды да, заэкранил.
лучше проэкранируй бекслеш
py.user.nextспасибо, поправил
комментируй через #, тройные кавычки как комментарий - для docstring
py.user.nextнет, не думаю. В моём случае порядок не принципиален.
думаешь, ключи словаря будут перебираться по порядку ?
py.user.nextкаталог один, в нём разные файлы.
у тебя функция сохранения использует один разделитель каталогов, тогда как они разные
py.user.nextпринципиально это ничего не изменило.. содержимое списка пустое..
прежде, чем сохранять в файл, вставь строку, которая на экране будет отображать подготовленные данные
#!/usr/local/bin/python # -*- coding: utf-8 -*- from lxml import html HTMLtree = html.parse("http://www.pleer.ru/cifrovye-fotoapparaty~69.html") name = HTMLtree.xpath("//h1[@class='disableH1']/text()") print "name=%s" % name
from lxml import html from urllib.request import urlopen url = "http://www.pleer.ru/cifrovye-fotoapparaty~69.html" page = urlopen(url).read() doc = html.document_fromstring(page) name = doc.xpath("//h1[@class='disableH1']/text()") print("name={0}".format(name).encode('utf-8'))
asphixчто это за .encode() ?print("name={0}".format(name).encode('utf-8'))
asphixпуть нужно склеивать через os.path.join(), тогда это будет переносимо
под никсами путь выглядит как ‘csv/{0}.csv’ - экранировка не обязательна. Для винды да, заэкранил.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Html File</title>
</head>
<body>
<ul>
<li>Ref1:<br>
<a href="http://www.site1.com">Site1</a>
<li>Ref2:<br>
<a href="http://www.site2.com">Site2</a>
<li>Ref3:<br>
<a href="http://www.site3.com">Site3 a©b@c</a>
</ul>
</body>
</html>
>>> import lxml.html >>> with open('page.html') as fin: ... tree = lxml.html.parse(fin) # подать можно имя файла или файловый объект ... tree.xpath("//a") ... for node in tree.xpath("//a"): ... print node.text, '->', node.attrib['href'] ... tree.xpath("//a/text()") ... tree.xpath("//a/@href") ... [<Element a at b73e2e3c>, <Element a at b73e2e6c>, <Element a at b73e2e9c>] Site1 -> http://www.site1.com Site2 -> http://www.site2.com Site3 a©b@c -> http://www.site3.com ['Site1', 'Site2', u'Site3 a\xa9b@c'] ['http://www.site1.com', 'http://www.site2.com', 'http://www.site3.com'] >>>