urllib.request.urlopen(request) html = response.read().decode("utf-8") return html 一、使用正则、lxml、bs4 解析职位数据 在爬取了整个网页之后,下一步就是从整个 HTML 中提取目标数据。 ① 使用 re 模块解析网页数据 根据前面所分析的网页源代码; 查找所有的职位名称。 在 HTML 源代码中,职位名称对应的文本位于标签 中。首先,以 (.*?) 查找所有的职位详情链接。 职位详情链接的文本位于开始标签 中,且 中有着唯一的属性,可以与其它 进行区分。 > 查找职位类别、招聘人数、地点、发布时间。 职位类别、招聘人数、地点、发布时间对应的文本都位于开始标签
爬取腾讯社会招聘网站的招聘信息,包括职位名称、职位类别、招聘人数、工作地点、发布时间、以及每个职位详情的链接。 ? 一、 分析要解析的数据 第一个职位所在的标签 ,该标签中既有属性,又有文本。 href 属性: 每个职位详情的链接(后半部分)。如果要了解职位的详情,需要在 href 属性值的前面加上 http://hr.tencent.com/,拼接成一个完整的链接。 文本: 表示职位的名称。 再查看其它相邻的标签
urllib.request.urlopen(request) html = response.read().decode("utf-8") return html 一、使用 lxml 库解析网页数据 //td[@class="l square"]/a/@href ② 查找所有的职位名称。 表示职位名称的文本对应着标签 的文本。 names = root.xpath('//td[@class="l square"]/a/text()') # 查找所有的职位类别 categorys = root.xpath(' /td[5]') # 定义空列表,保存元素的信息 items = [] for i in range(0, len(names)): item = {} item['职位名称 '] = names[i] item['详情链接'] = self.base_url + links[i] item['职位类别'] = categorys[i].text item