2018年10月6日 星期六

Python從網路爬文到Word存檔

從網路可以取得許多資料,接下來若能把這些資料轉成Word檔,那就更完美了,記得要先安裝pip3 install python-docx。

import requests
from bs4 import BeautifulSoup
from docx import Document
from docx.shared import Inches

url = "http://www.nkut.edu.tw" 
re = requests.get(url) 
re.encoding='utf8'

soup = BeautifulSoup(re.text, 'html.parser')
html_inforamtion = soup.find('p')
print(html_inforamtion)

document = Document()
document.add_heading('南開科技大學', 0)
p = document.add_paragraph(html_inforamtion)
document.save('nkut.docx')

以下是print(html_inforamtion)的結果

Word的存檔路徑

查看輸出的Word檔

Python網路爬文

在這數位時代中,網路、網站、網頁已成為日常生活中不可以缺的元素,我們生活起居經常要上網查資料,假如我們能寫一支程式來過濾網路上的資訊,這一定是很棒的一件事。本篇文章就是要用Python網路爬蟲來收集資料。

想要從網頁中取得資料就要安裝requests套件

想要解構並擷取網頁資訊就要安裝beautifulsoup4套件

import requests
r = requests.get('http://www.google.com')
print (r.text)

執行結果:

如何讀取南開科技大學的網頁內容
import requests

url = "http://www.nkut.edu.tw" 
re = requests.get(url) 
re.encoding='utf8'
print(re.text)


判斷回傳的代碼
import requests
r = requests.get('http://www.nkut.edu.tw')
print(r.status_code)
if r.status_code == requests.codes.ok:
  print("OK")

執行結果


我們來嘗試網路爬文找出南開科技大學首頁上重要資訊內容
import requests
from bs4 import BeautifulSoup

url = "http://www.nkut.edu.tw" 

re = requests.get(url) 

re.encoding='utf8'

soup = BeautifulSoup(re.text, 'html.parser')
print(soup)

print("列印出第一頁的文字")
print(soup.find('p'))   

print("\n\n列印出id是counter的文字")
print(soup.find(id='counter')) 

print("\n\n列印出全部的文字")
print(soup.find_all('p')) 

print("\n\n列印出的文字")
print(soup.find('h1')) 


2018年10月4日 星期四

Python迴圈的美

本篇我們要學習Python迴圈的概念,我們就先以畫圓來說明,以下三行程式,分別表示匯入畫圖套件,第二行是指建立畫圖物件c,最後再畫圓。

import turtle

c = turtle.Turtle()

c.circle(100)



import turtle

c = turtle.Turtle()

c.circle(100)

c.left(10)

c.circle(100)

c.left(10)


上圖迴圈的寫法

import turtle
c = turtle.Turtle()
i = 0
while i < 2:
    c.circle(100)
    c.left(10)
    i += 1

因為圓有360度,每次都向左10度,只要連續轉36次,就會變得很好看

import turtle
c = turtle.Turtle()
i = 0
while i < 36:
    c.circle(100)
    c.left(10)

import turtle
c=turtle.Turtle()
for i in range(36):
    c.circle(100)
    c.left(10)
    i += 1

用遞迴的想法來設計
import turtle
c=turtle.Turtle()
def circle_recursion(i):

    if(i>0):
        c.circle(100)
        c.left(10)
        circle_recursion(i-1)
    return

circle_recursion(36)

接下來來看看IF
import turtle
c = turtle.Turtle()
i = 0
while i < 36:
    i += 1
    if i% 2 == 0:
        c.circle(100)
    c.left(10)
    
不妨把輸入程式觀察其形為