Я бы рекомендовал использовать mechanize в сочетании с lxml.html. Как предположил Роберт Кинг, механизация, вероятно, лучше всего подходит для навигации по сайту. для извлечения элементов я бы использовал lxml. lxml намного быстрее, чем BeautifulSoup и, вероятно, самый быстрый парсер, доступный для python. эта ссылка показывает тест производительности различных парсеров html для python. Лично я бы воздержался от использования скрап-упаковки.
Я не проверял это, но это, вероятно, то, что вы ищете, первая часть взята прямо из документации механизации . документация lxml также весьма полезна. особенно взгляните на этот и этот раздел.
import mechanize
import lxml.html
br = mechanize.Browser()
response = br.open("somewebsite")
for link in br.links():
print link
br.follow_link(link) # takes EITHER Link instance OR keyword args
print br
br.back()
# you can also display the links with lxml
html = response.read()
root = lxml.html.fromstring(html)
for link in root.iterlinks():
print link
вы также можете получить элементы через root.xpath (). Простой wget может быть даже самым простым решением.
Надеюсь, я смогу помочь.