Python爬取网页信息并保存为CSV文件!又学了一招!

本次爬取的网页是猎聘网内关于深圳的所有招聘信息,一共400多个职位,并保存为csv文件存储,好了,话不多说,开始进入讲解。(对爬虫感兴趣的,可以参考此篇文章的做法去爬你想要的网站去吧!!!)

首先打开目标网站:

页面信息如下(因为招聘信息是动态,可能你的界面的职位会有所不同)

       

我们按F12进入开发者界面:

点击元素旁边的类似鼠标的按钮,如下:

然后就可以在原网页点击我们想要获取的标签,之后就会显示该标签对应的html代码

比如点击工作名称:双语解说员,然后右边就会帮我们找到对应的源代码。

接着我们分析上下代码,发现该所有职位的代码都在<li>..</li>之间

所有我们可以找到包含这些职位代码的上一个标签,即

故代码可以写成  all_job = html.find("ul", class_="sojob-list").find_all("li")

这样我们就定位到这个工作列表下,下面所有操作都是从这里面去查询,我们用一个循环遍历每个<li>下的子标签

用find方法可以让网页解析器一直查询,直到查到对应的标签下停止,这里我们可以定位到 <div class = "job-info">下

该标签下就是我们要爬取的东西

爬取工作名实现:name = date.find("a", target="_blank").text.strip()

再打开<p class="condition clearfix>标签,爬取地区,薪水,对应的网站,学历

因此

爬取地区实现:area = date.find("a", class_="area").text

爬取薪水实现:salary = date.find("span", class_="text-warning").text

爬取网站实现:url = date.find("a", class_="area")["href"]  

爬取学历实现:edu = date.find("span", class_="edu").text

最后我们再用一个循环去让网站的url发生变化,也就是网站最后面的数字就是该网页的页数,如下:

最后再通过两行命令,将结果保存为csv文件即可

爬取结束!!

查看结果:

附上完整代码:

import requests

import bs4

import pandas as pd

result = {"jobname": [], # 工作名

"area": [], # 地区

"salary": [], # 薪水

"url": [], # 网址

"edu":[] #学历

}

for i in range(11):

url = "https://www.liepin.com/zhaopin/?compkind=&dqs=050090&pubTime=&pageSize=40&salary=&compTag=&sortFlag=&compIds=&subIndustry=&jobKind=&industries=&compscale=&key=&siTag=1B2M2Y8AsgTpgAmY7PhCfg%7EfA9rXquZc5IkJpXC-Ycixw&d_sfrom=search_title&d_ckId=c16556e4cc914dee657cb1e26c5f809e&d_curPage=0&d_pageSize=40&d_headId=c16556e4cc914dee657cb1e26c5f809e" + str(i)

print(url)

r = requests.get(url)

html = bs4.BeautifulSoup(r.text, "html.parser")

all_job = html.find("ul", class_="sojob-list").find_all("li")

for date in all_job:

name = date.find("a", target="_blank").text.strip()

area = date.find("a", class_="area").text

salary = date.find("span", class_="text-warning").text

url = date.find("a", class_="area")["href"]

edu = date.find("span", class_="edu").text

result["jobname"].append(name)

result["area"].append(area)

result["salary"].append(salary)

result["url"].append(url)

result["edu"].append(edu)

df = pd.DataFrame(result)


df.to_csv("shenzhen_Zhaopin.csv", encoding="utf_8_sig")

PS:如遇到解决不了问题的小伙伴可以加点击下方链接自行获取

 

python免费学习资料以及群交流解答点击即可加入

  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将取的网页内容保存CSV文件中,可以使用Python中的csv模块。具体步骤如下: 1. 导入相关模块: ```python import requests import csv from bs4 import BeautifulSoup ``` 2. 发送HTTP请求,获取网页内容: ```python url = 'http://www.example.com' response = requests.get(url) html_content = response.content ``` 3. 解析HTML内容,获取需要的信息: ```python soup = BeautifulSoup(html_content, 'html.parser') title = soup.title.string text = soup.get_text() ``` 4. 将获取的信息写入CSV文件: ```python with open('example.csv', 'w', encoding='utf-8', newline='') as csvfile: writer = csv.writer(csvfile) writer.writerow(['Title', 'Text']) writer.writerow([title, text]) ``` 注意事项: - `csv.writer()`中`newline=''`参数的作用是防止写入CSV文件时出现空行; - CSV文件的编码一般为`utf-8`,中文字符需要特别注意编码问题。 完整代码示例: ```python import requests import csv from bs4 import BeautifulSoup url = 'http://www.example.com' response = requests.get(url) html_content = response.content soup = BeautifulSoup(html_content, 'html.parser') title = soup.title.string text = soup.get_text() with open('example.csv', 'w', encoding='utf-8', newline='') as csvfile: writer = csv.writer(csvfile) writer.writerow(['Title', 'Text']) writer.writerow([title, text]) ``` 执行完毕后,当前目录下会生成一个名为`example.csv`的文件文件内容为取的网页标题和文本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值