大概知道一些思路了,试试内推网的爬取。
首先url的格式是:http://www.neitui.me/?name=neitui&handle=lists&keyword={KEY_WORD}&page={CUR_PAGE}
url后面问号跟着的是参数,等于号后面有值的是有效的参数,无值的可以省略;&是连接符号,用于连接参数的。
通过XPath提取页面,我今天才知道,原来在谷歌浏览器中用F12显示源码后,可以按Ctrl+F后,通过XPath表达式来查找目标,这样写完XPath表达式后就可以在页面上直接验证了,也容易判断能否化简表达式。
首先是获取指定岗位的总页数,通过分析源码知道源码中没有总页数这一条。分析页面
页面靠上部分会给出总职位数,每页固定28个职位,这样似乎可以通过(总职位数/28)+1 来得到页数。
但是,试了几个页面之后我发现,当总职位数超过1000时的显示就变成下面的样子了:
这样就不能通过除法得到页数了。
再观察页码部分
可以发现,如果没有下一页时,页面上没有向后的图标。分析源码可以通过
//div[@class="t_pagelink"]//a[@class="next"]
(分析后发现可以化简成//a[@class="next"])
来找到向后的图标。
这样就需要每抓取一页后分析是否还有下一页,如果有就继续抓取。
时间: 2024-10-11 15:33:26