手把手教你,Python爬取招聘信息。一学就会,一写就废。
零基础的同学也能上手的,简单详细的python爬虫教学,也是经验的分享。
话不多说我们直接进入主题。
本次用到的python爬虫第三方库。
- requests:不是内置的,所以需要手动安装 => pip install requests
- re (正则表达式):用于requests爬取数据后进行解析,也是需要手动安装,==> pip install re 。
- Json :是一种轻量级的数据交换格式,易于人阅读和编写。
注意:(1)、因返回的数据较多,这里就不给予展示了。
(2)、代码是一段一段的,进行一步一步的讲解,最后会附上所有的源码。
一、爬虫数据思路
1.进入网址
网站连接可在代码中的 url 复制 ,因为某些不可说的原因。
输入python ,查找python招聘信息。
2.查看需要的数据在源码中的位置,判断是否为动态网页。
在源码里面进行搜索“python开发工程师”,找到其对应的位置。
在body标签中没有对应的数据,而在script中发现了数据所在。此时说明此网页是一个动态网页。可以利用re(正则表达式)来解析所需要数据。
二、代码
1.首先导入 requests 和 re模块
import requests
import re
import json
2.利用 requests 进行数据请求,此段代码有响应数据,这可以用此段代码。如果无数据或者乱码则用下面的代码。
import requests
import re
import json
#长类型字符串可以用 () 进行连接
'''
https://search.51job.com/list/000000,000000,0000,00,9,99,python,2,1.html?lang=c&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare=
'''
url = ('https://search.51job.com/list/000000,000000,0000,00,9,99,python,2,1.html?'
'lang=c&postchannel=0000&workyear=99&cotype=99&
degreefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare=')
resp = requests.get(url).text # .text 是属性,让返回的数据为文本格式
print(resp)
'''
如果有数据响应,并且和源码一样说明请求没问题,如果请求的是一串乱码或者没有数据。
可以加上 请求头(User-Agent) 和 Cookie
'''
Cookie的位置
请求头(User-Agent)的位置
url = ('https://search.51job.com/list/000000,000000,0000,00,9,99,python,2,1.html?'
'lang=c&postchannel=0000&workyear=99&cotype=99°re