Как использовать красивый суп для перемещения по всем страницам результата. Например, у меня есть, чтобы очистить этот сайт:Перемещение на следующую страницу с использованием красивого супа
http://www.ncbi.nlm.nih.gov/pubmed
Поисковый запрос является
«((онкология) и рак молочной железы) и в результате»
без кавычек.
Как получить все страницы? Я пробовал искать данные формы в заголовках запросов. Пробовал модифицировать некоторые поля. Я могу изменить его, чтобы получить 200 записей на страницу. Но не более того. Мне действительно нужно перебирать страницы, чтобы получить все. Любая помощь будет высоко оценена.
Предположим, что на данный момент я просто хотел посмотреть на 4-ю страницу.
Соответствующая часть кода:
post_params = {
'term' : val,
'EntrezSystem2.PEntrez.PubMed.Pubmed_ResultsPanel.Pubmed_DisplayBar.PageSize' : 20,
'EntrezSystem2.PEntrez.PubMed.Pubmed_ResultsPanel.Pubmed_DisplayBar.sPageSize' : 20,
'coll_start' : 61,
'citman_count' : 20,
'citman_start' : 61,
'coll_start2' : 61,
'citman_count2' : 20,
'citman_start2' : 61,
'CollectionStartIndex': 1,
'CitationManagerStartIndex' : 1,
'CitationManagerCustomRange' : 'false',
'EntrezSystem2.PEntrez.PubMed.Pubmed_ResultsPanel.Entrez_Pager.cPage' : 3,
'EntrezSystem2.PEntrez.PubMed.Pubmed_ResultsPanel.Entrez_Pager.CurrPage' : 4,
}
"""This part handles the scraping business"""
post_args = urllib.urlencode(post_params)
baseurl = 'http://www.ncbi.nlm.nih.gov'
url = 'http://www.ncbi.nlm.nih.gov/pubmed/'
page = urllib2.urlopen(url, post_args)
page = page.read()
soup = BeautifulSoup(page)
soup.prettify()
Он по-прежнему получает первую страницу. Как только эта часть будет успешной, я думаю об итерации по этому коду, изменяя параметры каждый раз.
Вы должны добавить свой код –
@PadraicCunningham Я добавил код. – user3286661
вы не можете посмотреть 'EntrezSystem2.PEntrez.PubMed.Pubmed_ResultsPanel.Entrez_Pager.CurrPage ': 4' и сделать xrange (1, n) и использовать результат вместо 4 ?? – akira