vb抓取网页内容(soup,文中通过示例代码介绍的详细内容介绍-乐题库)
优采云 发布时间: 2022-01-10 17:18vb抓取网页内容(soup,文中通过示例代码介绍的详细内容介绍-乐题库)
本篇文章主要介绍Python如何使用BeautifulSoup抓取网页信息。文章中对示例代码进行了非常详细的介绍。对大家的学习或工作有一定的参考和学习价值。有需要的朋友可以参考以下
本篇文章主要介绍Python如何使用BeautifulSoup抓取网页信息。文章中对示例代码进行了非常详细的介绍。对大家的学习或工作有一定的参考和学习价值。有需要的朋友可以参考以下
简单爬取网页信息的思路一般是
1、查看网页源代码
2、爬取网页信息
3、解析网页内容
4、保存到文件
现在使用BeautifulSoup解析库爬取刺猬实习Python职位的工资
一、查看网页源代码
这部分是我们需要的,对应的源码为:
分析源码,我们可以知道:
1、职位信息在
2、每条消息都在
3、每条信息,我们需要提取公司名称、职位、工资
二、爬取网页信息
使用request.get()抓取,返回的soup是网页的文本信息
def get_one_page(url): response = requests.get(url) soup = BeautifulSoup(response.text, "html.parser") return soup
三、解析网页内容
1、找到起始位置
2、匹配的信息
3、返回要存储的信息列表
def parse_page(soup): #待存储的信息列表 return_list = [] #起始位置 grid = soup.find('section', attrs={"class": "widget-job-list"}) if grid: #找到所有的岗位列表 job_list = soup.find_all('article', attrs={"class": "widget item"}) #匹配各项内容 for job in job_list: #find()是寻找第一个符合的标签 company = job.find('a', attrs={"class": "crop"}).get_text().strip()#返回类型为string,用strip()可以去除空白符,换行符 title = job.find('code').get_text() salary = job.find('span', attrs={"class": "color-3"}).get_text() #将信息存到列表中并返回 return_list.append(company + " " + title + " " + salary) return return_list
四、保存到文件
将列表信息存储到 shixi.csv 文件中
def write_to_file(content): #以追加的方式打开,设置编码格式防止乱码 with open("shixi.csv", "a", encoding="gb18030")as f: f.write("\n".join(content))
五、爬取多页信息
在网页url中可以看到最后一页代表页码信息
所以在main方法中传入一个页面,然后循环运行main(page)爬取多页信息
def main(page): url = 'https://www.ciweishixi.com/search?key=python&page=' + str(page) soup = get_one_page(url) return_list = parse_page(soup) write_to_file(return_list) if __name__ == "__main__": for i in range(4): main(i)
六、运行结果
七、完整代码
import requests import re from bs4 import BeautifulSoup def get_one_page(url): response = requests.get(url) soup = BeautifulSoup(response.text, "html.parser") return soup def parse_page(soup): #待存储的信息列表 return_list = [] #起始位置 grid = soup.find('section', attrs={"class": "widget-job-list"}) if grid: #找到所有的岗位列表 job_list = soup.find_all('article', attrs={"class": "widget item"}) #匹配各项内容 for job in job_list: #find()是寻找第一个符合的标签 company = job.find('a', attrs={"class": "crop"}).get_text().strip()#返回类型为string,用strip()可以去除空白符,换行符 title = job.find('code').get_text() salary = job.find('span', attrs={"class": "color-3"}).get_text() #将信息存到列表中并返回 return_list.append(company + " " + title + " " + salary) return return_list def write_to_file(content): #以追加的方式打开,设置编码格式防止乱码 with open("shixi.csv", "a", encoding="gb18030")as f: f.write("\n".join(content)) def main(page): url = 'https://www.ciweishixi.com/search?key=python&page=' + str(page) soup = get_one_page(url) return_list = parse_page(soup) write_to_file(return_list) if __name__ == "__main__": for i in range(4): main(i)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持html中文网站。
以上就是Python如何使用BeautifulSoup抓取网页信息的详细内容。更多内容请关注html中文网文章其他相关话题!