vb抓取网页内容(soup,文中通过示例代码介绍的详细内容介绍-乐题库)

优采云 发布时间: 2022-01-10 17:18

  vb抓取网页内容(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中文网文章其他相关话题!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线