В образовательных целях я пытаюсь очистить this page, используя lxml и запросы в Python.Python lxml xpath no output
В частности, я просто хочу напечатать исследовательские области всех профессоров на странице. Это то, что я делал до сих пор
import requests
from lxml import html
response=requests.get('http://cse.iitkgp.ac.in/index.php?secret=d2RkOUgybWlNZzJwQXdLc28wNzh6UT09')
parsed_body=html.fromstring(response.content)
for row in parsed_body.xpath('//div[@id="maincontent"]//tr[position() mod 2 = 1]'):
for column in row.xpath('//td[@class="fcardcls"]/tr[2]/td/font/text()'):
print column.strip()
Но он ничего не печатает. Я довольно много боролся с xpaths и в основном использовал функцию xpath для копирования в хроме. Я следил за тем, что было сделано в следующих SO-ответах/ответах, и немного очистил мой код и избавился от «tbody» в xpaths. Тем не менее код возвращает пробел.
Ваш код работает отлично, и я понимаю, что вы написали, спасибо. Теперь у меня есть пара вопросов: 1. Как вы узнали основную страницу содержания, то есть [этот] (http://cse.iitkgp.ac.in/faculty4.php?_=1450503917634) 2. В моем коде какая ошибка в xpath я написал? Они указывали на правильный элемент (области исследований), когда я проверял «проверку» хром. – humblenoob
@humblenoob в порядке, конечно - 1. Я только что использовал инструменты разработчика браузера и проверил, какие запросы были отправлены во время загрузки страницы; 2. ваш код был в целом на правильном пути - ну, по крайней мере, одно дело в том, что внутреннее выражение xpath должно начинаться с точки, которая должна быть контекстной. Надеюсь, что ответ помог. – alecxe