昨天将爬取网页的代码中utf-8 改为 gbk 后,程序运行成功。
为了方便后面的工作,在test文件夹下,新建一个html文件,将刚才运行成功的结果粘贴过来。
下一步,定义获取所有工作岗位链接的函数。
在搜索页面,岗位显示的信息是很少的,我们只有通过点击某个岗位链接的时候,才可以看到这个岗位的详情页。
也就是说,通过这个函数,可以爬取岗位详情页面的信息。
所以,这个事得分两步:第一步是拿到所有岗位的链接;第二步是爬取链接页面的所有内容。
要注意三个问题:
1、网址中的岗位如果是中文名怎么办?
比如要是岗位搜“大数据”,网址就变成了这个鬼样子。
这里需要从 urllib引入一个包 parse,可以将字符串解析成相应的字符。
在 PyCharm里用 parse 解析下“大数据”三个字会出来什么结果呢?
咦?仔细对比可以发现,虽然跟网址不完全一样,但是只是区别在网址比我们的运行结果每个字符前多了个25而已。
这说明51job是进行了两次解析。
所以我们也得相应进行两次解析就对上了。
结果与网址一样,完美契合!
于是,按照这个思路,要将 main 函数中的网址也要进行相应改造。
2、如何解析网页
如果不使用正则表达式解析,那么可以使用BeautifulSoup。
在 Chrome 利用指针进行定位,然后通过层级关系精确找到需要的内容。
感觉这个办法真的挺简单,比正则表达式要强好多。
唯一的难点就是在 Chrome里面认真分析的过程,但实际上通过在 PyCharm里面不停的试错,终究也会找到的。
至此,获取所有岗位链接的 getLink 函数已经搞定了。
今天先到这里,后面的内容明天再说吧。