# 引入各种lib
import urllib.request
import chardet
import urllib.parse
import json
import re
# 加入相关的请求头数据
headers = {}
headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
def request_test(page):
print("start")
page = str(page)
url = 'xxxxxxx'+page+'xxxxxxxx' #将网址,page是爬取页数
req = urllib.request.Request(url,headers=headers) #把url、data、header封装成一个请求
#提交请求
response = urllib.request.urlopen(req)#掉用请求,请求成功则获取到网页上的静态页面代码
#获取返回页面内容
html = response.read().decode('gbk')#对响应的静态页面代码进行'gbk'格式解码
# print(html)
for i in get(html):#进行for循环
i = list(i)
with open ('htmltest.txt',"a",encoding='utf-8') as f:#这里将数据写到txt文件,设置编码格式为'utf-8'(时间原因其实也可以生成excel文件)
# 这里将相应的key替换为中文
f.write("薪资: "+i[0].replace('"z_salary":','')+'\t'+"职位: "+i[1].replace('"z_name":','').replace(',"z_apply_type":"0"','')+'\t'+"公司名称: "+i[2].replace('"z_companyname":','')+'\t'+"公司地址: "+i[3].replace('"z_company_address":','').replace('"z_edu"','学历')+'\t'+"岗位: "+i[4].replace('"z_type":','')+ '\t'+"性别要求: " +i[5].replace('"z_sex":','')+'\t'+"经验要求: "+i[6].replace('"z_exp":','')+'\t'+"年龄: "+i[7].replace('"z_age":','')+'\n' )
f.close()
def get(html):
# 这里是涉及到python的正则表达式,(.*?是忽略其他的意思)
reg = re.compile(r'("z_salary":".*?"),("z_name":".*?"),("z_companyname":".*?"),("z_company_address":".*?),("z_type":".*?"),("z_sex":".*?"),("z_exp":".*?"),("z_age":".*?")',re.S)
# 根据正则表达式的内容,对爬取的html页面进行相关的内容查找
items=re.findall(reg,html)
# 放回查找出的结果
return items
# 这里可以做相关的优化,这里是爬取的页数
loop = [1,2,3,4,5,6,7]
# for,爬取网站
for page in loop:
request_test(page)
初学python,实现简单的爬虫代码
最新推荐文章于 2023-10-30 16:10:28 发布