尝试点击"下一步"按钮位于下一页,最终目标是使用python + mechanize循环浏览2-8页。
https://www.ncbi.nlm.nih.gov/pubmed/?term=shi+LL
我使用以下代码:
import mechanize
import cookielib
from bs4 import BeautifulSoup
import urllib
br = mechanize.Browser()
# Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
# Browser options
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
# Follows refresh 0 but not hangs on refresh > 0
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
# Want debugging messages?
#br.set_debug_http(True)
#br.set_debug_redirects(True)
#br.set_debug_responses(True)
# User-Agent (this is cheating, ok?)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
br.open("https://www.ncbi.nlm.nih.gov/pubmed/?term=shi+LL")
request = br.click_link(link)
response = br.follow_link(link)
print response.geturl()
但我不知道在"链接"变量因为下一个按钮有一个href =#,并且同一页面上有多个项目具有相同的href ...
这是对应于页面顶部下一个按钮的html:
<a name="EntrezSystem2.PEntrez.PubMed.Pubmed_ResultsPanel.Entrez_Pager.Page" title="Next page of results" class="active page_link next" href="#" sid="3" page="2" accesskey="k" id="EntrezSystem2.PEntrez.PubMed.Pubmed_ResultsPanel.Entrez_Pager.Page">Next ></a>
我还尝试在页面顶部的文本控件中插入数字2-8来循环浏览页面,没有运气,因为在任何地方都没有提交按钮/搜索按钮。
有什么想法吗?