欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python如何使用BeautifulSoup爬取網(wǎng)頁(yè)信息

 更新時(shí)間:2019年11月26日 09:23:12   作者:陳暢  
這篇文章主要介紹了Python如何使用BeautifulSoup爬取網(wǎng)頁(yè)信息,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了Python如何使用BeautifulSoup爬取網(wǎng)頁(yè)信息,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

簡(jiǎn)單爬取網(wǎng)頁(yè)信息的思路一般是

1、查看網(wǎng)頁(yè)源碼

2、抓取網(wǎng)頁(yè)信息

3、解析網(wǎng)頁(yè)內(nèi)容

4、儲(chǔ)存到文件

現(xiàn)在使用BeautifulSoup解析庫(kù)來(lái)爬取刺猬實(shí)習(xí)Python崗位薪資情況

一、查看網(wǎng)頁(yè)源碼

這部分是我們需要的內(nèi)容,對(duì)應(yīng)的源碼為:

分析源碼,可以得知:

1、崗位信息列表在<section class="widget-job-list">中

2、每條信息在<article class="widget item">中

3、對(duì)于每條信息,我們需要提取出的內(nèi)容是 公司名稱,職位, 薪資

二、抓取網(wǎng)頁(yè)信息

使用request.get()抓取,返回的soup是網(wǎng)頁(yè)的文本信息

def get_one_page(url):
  response = requests.get(url)
  soup = BeautifulSoup(response.text, "html.parser")
  return soup

三、解析網(wǎng)頁(yè)內(nèi)容

1、找到起始位置<section>

2、在<article>中匹配到各項(xiàng)信息

3、返回信息列表用以存儲(chǔ)

def parse_page(soup):
  #待存儲(chǔ)的信息列表
  return_list = []
  #起始位置
  grid = soup.find('section', attrs={"class": "widget-job-list"})
  if grid:
    #找到所有的崗位列表
    job_list = soup.find_all('article', attrs={"class": "widget item"})

    #匹配各項(xiàng)內(nèi)容
    for job in job_list:
      #find()是尋找第一個(gè)符合的標(biāo)簽
      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

四、存儲(chǔ)到文件

將列表信息存儲(chǔ)到shixi.csv文件中

def write_to_file(content):
  #以追加的方式打開(kāi),設(shè)置編碼格式防止亂碼
  with open("shixi.csv", "a", encoding="gb18030")as f:
    f.write("\n".join(content))

五、爬取多頁(yè)信息

在網(wǎng)頁(yè)url中 可以看到最后的page代表的是頁(yè)數(shù)信息

所以在main方法中傳入一個(gè)page,然后循環(huán)運(yùn)行main(page)就可以爬取多頁(yè)信息了

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)

六、運(yùn)行結(jié)果

七、完整代碼

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):
  #待存儲(chǔ)的信息列表
  return_list = []
  #起始位置
  grid = soup.find('section', attrs={"class": "widget-job-list"})
  if grid:
    #找到所有的崗位列表
    job_list = soup.find_all('article', attrs={"class": "widget item"})

    #匹配各項(xiàng)內(nèi)容
    for job in job_list:
      #find()是尋找第一個(gè)符合的標(biāo)簽
      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):
  #以追加的方式打開(kāi),設(shè)置編碼格式防止亂碼
  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)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于Python實(shí)現(xiàn)炸彈人小游戲

    基于Python實(shí)現(xiàn)炸彈人小游戲

    這篇文章主要介紹了基于Python中的Pygame模塊實(shí)現(xiàn)的炸彈人小游戲,文中的示例代碼講解詳細(xì),對(duì)學(xué)習(xí)Python有一定的幫助,感興趣的小伙伴可以學(xué)習(xí)一下
    2021-12-12
  • python中的getattribute 、getattr、setattr方法詳解

    python中的getattribute 、getattr、setattr方法詳解

    這篇文章主要介紹了python中的getattribute 、getattr、setattr方法詳解,python類中默認(rèn)有一些特殊方法,這篇文章記錄一下特殊方法的功能及用法,需要的朋友可以參考下
    2023-11-11
  • Python 如何查看程序內(nèi)存占用情況

    Python 如何查看程序內(nèi)存占用情況

    這篇文章主要介紹了Python 如何查看程序內(nèi)存占用情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python中reduce函數(shù)詳解

    Python中reduce函數(shù)詳解

    本文主要介紹了Python中reduce函數(shù)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Python實(shí)現(xiàn)單項(xiàng)鏈表的最全教程

    Python實(shí)現(xiàn)單項(xiàng)鏈表的最全教程

    單向鏈表也叫單鏈表,是鏈表中最簡(jiǎn)單的一種形式,它的每個(gè)節(jié)點(diǎn)包含兩個(gè)域,一個(gè)信息域(元素域)和一個(gè)鏈接域,這個(gè)鏈接指向鏈表中的下一個(gè)節(jié)點(diǎn),而最后一個(gè)節(jié)點(diǎn)的鏈接域則指向一個(gè)空值,這篇文章主要介紹了Python實(shí)現(xiàn)單項(xiàng)鏈表,需要的朋友可以參考下
    2023-01-01
  • 教你使用Pycharm配置遠(yuǎn)程Jupyter

    教你使用Pycharm配置遠(yuǎn)程Jupyter

    在pycharm里配置了遠(yuǎn)程的Python解釋器,然后在使用過(guò)程中,發(fā)現(xiàn)pycharm原來(lái)是可以使用Jupyter的文件,而且還可以配置遠(yuǎn)程的Jupyter環(huán)境,今天試了一下,一開(kāi)始還是走了一些坑,今天梳理一下,需要的朋友可以參考下
    2022-05-05
  • python中使用序列的方法

    python中使用序列的方法

    這篇文章主要介紹了python中使用序列的方法,較為詳細(xì)的分析了Python序列的原理與使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • python?Ajenti控制面板輕松地管理所有服務(wù)器網(wǎng)站

    python?Ajenti控制面板輕松地管理所有服務(wù)器網(wǎng)站

    Ajenti是一個(gè)值得擁有的管理面板,免費(fèi)開(kāi)源的管理面板工具,可以幫助你集中管理多個(gè)服務(wù)器和網(wǎng)站,Ajenti?支持?Linux、BSD、Mac?OS?X和Windows?等多個(gè)操作系統(tǒng),并且可以通過(guò)一個(gè)直觀的?Web?界面來(lái)完成各種系統(tǒng)管理任務(wù)
    2024-01-01
  • Python讀取環(huán)境變量的方法和自定義類分享

    Python讀取環(huán)境變量的方法和自定義類分享

    這篇文章主要介紹了Python讀取環(huán)境變量的方法和自定義類分享,本文直接給出代碼實(shí)例,需要的朋友可以參考下
    2014-11-11
  • jupyter?notebook?自定義python解釋器的過(guò)程詳解

    jupyter?notebook?自定義python解釋器的過(guò)程詳解

    大家都知道jupyter?notebook?網(wǎng)頁(yè)版交互環(huán)境,類似于ipython,功能強(qiáng)大,這篇文章主要介紹了jupyter?notebook?自定義python解釋器的過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10

最新評(píng)論