我正在尝试从网页报废搜索查询中获取所有文章链接,但我似乎没有得到任何结果。
我的方法: 我正在尝试获取文章的ID,然后将它们附加到已知的url(http://www.seek.com.au/job/+ id)但是我的请求中没有id(来自http://docs.python-requests.org/en/latest/的python包)),实际上根本没有文章。
似乎在这种特殊情况下我需要以某种方式执行脚本(生成id)以获取完整数据,我该怎么做?
也许有其他方法可以从此搜索查询中检索所有结果?
答案 0 :(得分:1)
如上所述,下载Selenium。有python bindings。
Selenium是一个Web测试自动化框架。实际上,通过使用selenium,您可以远程控制Web浏览器。这是必要的,因为Web浏览器具有javascript引擎和DOMs,允许AJAX发生。
使用此测试脚本(假设您已安装Firefox;如果需要,Selenium支持其他浏览器):
# Import 3rd Party libraries
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
class requester_firefox(object):
def __init__(self):
self.selenium_browser = webdriver.Firefox()
self.selenium_browser.set_page_load_timeout(30)
def __del__(self):
self.selenium_browser.quit()
self.selenium_browser = None
def __call__(self, url):
try:
self.selenium_browser.get(url)
the_page = self.selenium_browser.page_source
except Exception:
the_page = ""
return the_page
test = requester_firefox()
print test("http://www.seek.com.au/jobs/in-australia/#dateRange=999&workType=0&industry=&occupation=&graduateSearch=false&salaryFrom=0&salaryTo=999999&salaryType=annual&advertiserID=&advertiserGroup=&keywords=police+check&page=1&isAreaUnspecified=false&location=&area=&nation=3000&sortMode=Advertiser&searchFrom=quick&searchType=").encode("ascii", "ignore")
它将加载SEEK并等待AJAX页面。 encode
方法是必要的(至少对我来说),因为SEEK返回一个unicode字符串,Windows控制台似乎无法打印。