您好,登錄后才能下訂單哦!
這篇文章主要介紹Python使用BeautifulSoup爬取網頁信息的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
簡單爬取網頁信息的思路一般是
1、查看網頁源碼
2、抓取網頁信息
3、解析網頁內容
4、儲存到文件
現在使用BeautifulSoup解析庫來爬取刺猬實習Python崗位薪資情況
一、查看網頁源碼
這部分是我們需要的內容,對應的源碼為:
分析源碼,可以得知:
1、崗位信息列表在<section class="widget-job-list">中
2、每條信息在<article class="widget item">中
3、對于每條信息,我們需要提取出的內容是 公司名稱,職位, 薪資
二、抓取網頁信息
使用request.get()抓取,返回的soup是網頁的文本信息
def get_one_page(url): response = requests.get(url) soup = BeautifulSoup(response.text, "html.parser") return soup
三、解析網頁內容
1、找到起始位置<section>
2、在<article>中匹配到各項信息
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中 可以看到最后的page代表的是頁數信息
所以在main方法中傳入一個page,然后循環運行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)
以上是“Python使用BeautifulSoup爬取網頁信息的方法”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。