Сначала выучить модуль urllib2, чтобы сделать сам запрос, потом уже парсить его с помощью lxml. Советую по этому поводу также выучить XPath и использовать его при парсинге.
>чтобы сделать поиской запрос и получить страницу с результатами
Делаешь urllib2.urlopen(), передавая ему data, которую ты создал через urllib.urlencode(). Данные - те самые search и type, посмотреть подробнее можно в firebug. В твоём случае search - твой запрос, а type - где искать.
Далее ты делаешь .read() и получаешь кучу html-я, в котором лежат результаты. Натравливаешь на эти данные регэксп, либо парсер (тот же lxml) и выдёргиваешь нужные ссылки.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.2/urllib/request.py", line 138, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.2/urllib/request.py", line 364, in open
req = meth(req)
File "/usr/lib/python3.2/urllib/request.py", line 1063, in do_request_
raise TypeError("POST data should be bytes"
TypeError: POST data should be bytes or an iterable of bytes. It cannot be str.
И, да, раз ты не читаешь документацию и не хочешь думать, то я предлагаю тебе заплатить мне 5$ и получить готовый скрипт, выдающий список ссылок по запросу. За 7$ ты получишь скрипт для питона 2 и 3. За 10$ будут два скрипта + два часа Enterprise-grade E-Mail support по теме этого скрипта.
Traceback (most recent call last):
File "./lol.py", line 8, in <module>
f = urllib.request.urlopen("http://tululu.ru/search/", params)
File "/usr/lib/python3.2/urllib/request.py", line 138, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.2/urllib/request.py", line 372, in open
response = meth(req, response)
File "/usr/lib/python3.2/urllib/request.py", line 484, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python3.2/urllib/request.py", line 410, in error
return self._call_chain(*args)
File "/usr/lib/python3.2/urllib/request.py", line 344, in _call_chain
result = func(*args)
File "/usr/lib/python3.2/urllib/request.py", line 492, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 500: Internal Server Error
Ну это уже надо конкрентно смотреть что не работает, может какая нить защита стоит от скриптов, но скорее всего где-нибудь ошибка, подозреваю что в кодировке.
Нет, это не так. Поиск происходит, не может он вставить символы и возвратить страницу. Где-то ошибка в кодировке, или еще где-то, но мне ее искать не хочется.
но по идее если я отправляю название на английском то проблемы быть не должно со стартовой страници, то он должен перейти на страницу поиска. Этого не происходит, а текст на английском следовательно не должно быть проблем.
Да он никуда не должен переходить, ты отправляешь запрос на определенную страницу (/search/) и она и должна возвращаться.
Как ты там со стартовой пробовал мне не понятно.