爬蟲小demo

爬取的數據存入Excel表格html

分析要爬取的內容的網頁結構:前端

圖片描述

demo.py:

import requests    #requests是HTTP庫
import re
from openpyxl import workbook  # 寫入Excel表所用
from openpyxl import load_workbook  # 讀取Excel表所用
from bs4 import BeautifulSoup as bs   #bs:經過解析文檔爲用戶提供須要抓取的數據
import os
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #改變標準輸出的默認編碼


#咱們開始利用requests.get()來獲取網頁並利用bs4解析網頁:
def getData(src):

    html = requests.get(src).content    # requests.get(src)返回的是狀態碼<Response [200]>,加上.content以字節形式(二進制返回數據。   和前端同樣,分爲get post等  http://www.cnblogs.com/ranxf/p/7808537.html
    soup = bs(html,'lxml')   # lxml解析器解析字節形式的數據,獲得完整的相似頁面的html代碼結構的數據
    print(soup)

    global ws
    Name = []
    Introductions = []
    introductions = soup.find_all("a",class_="book-item-name")
    nameList = soup.find_all("a",class_="author")
    print (nameList)
    for name in nameList:
        print (name.text)
        Name.append(name.text)
    for introduction in introductions:
        Introductions.append(introduction.text)
    for i in range(len(Name)):
        ws.append([Name[i],Introductions[i]])

if __name__ == '__main__':
    #   讀取存在的Excel表測試
    #     wb = load_workbook('t est.xlsx') #加載存在的Excel表
    #     a_sheet = wb.get_sheet_by_name('Sheet1') #根據表名獲取表對象
    #     for row in a_sheet.rows: #遍歷輸出行數據
    #         for cell in row: #每行的 每個單元格
    #             print cell.value,

    #  建立Excel表並寫入數據
    wb = workbook.Workbook()  # 建立Excel對象
    ws = wb.active  # 獲取當前正在操做的表對象
    # 往表中寫入標題行,以列表形式寫入!
    ws.append(['角色名字', '票數'])
    src = 'http://www.lrts.me/book/category/3058'
    getData(src)
    wb.save('qinshi.xlsx')  # 存入全部信息後,保存爲filename.xlsx

執行:python demo.pypython

效果 生成一個qinshi.xlsx文件
66b5a30abd27d796fd32c61962f247b.pngapp

相關文章
相關標籤/搜索