顯示具有 網路 標籤的文章。 顯示所有文章
顯示具有 網路 標籤的文章。 顯示所有文章

2015年12月28日 星期一

Python 基本爬蟲程式 (crawler) 範例 - 以 Google 新聞為例

目標:以 Google 新聞網頁為例,擷取焦點新聞各主題新聞標題與連結網址。

Google 新聞-焦點新聞 範例
以 InfoLite (Chrome擴充工具) 可以發現我們要擷取的資料在網頁原始碼中的 .esc-body 和 .esc-lead-article-title 兩個 class  中可以找到。



工具:
Python Packages 也可以 pip 方式進行安裝:
export http_proxy=http://proxy.hinet.net:80
export https_proxy=http://proxy.hinet.net:80

pip install requests
pip install BeautifulSoup4



程式:
# coding=utf-8

import requests
from bs4 import BeautifulSoup

res = requests.get("https://news.google.com")
soup = BeautifulSoup(res.text)
print soup.select(".esc-body")

count = 1

for item in soup.select(".esc-body"):
    print '======[',count,']========='
    news_title = item.select(".esc-lead-article-title")[0].text
    news_url = item.select(".esc-lead-article-title")[0].find('a')['href']
    print news_title
    print news_url
    count += 1


Python3 版本 (2017/04/02新增)
#!/usr/bin/env python3

# coding=utf-8
# -*- coding: utf8 -*-

from urllib.request import urlopen
from bs4 import BeautifulSoup

res = urlopen("https://news.google.com")
soup = BeautifulSoup(res, "html.parser")
#print soup.select(".esc-body")

count = 1

for item in soup.select(".esc-body"):
    print('======[',count,']=========')
    news_title = item.select(".esc-lead-article-title")[0].text
    news_url = item.select(".esc-lead-article-title")[0].find('a')['href']
    print(news_title)
    print(news_url)
    count += 1

執行結果:
======[ 1 ]=========
美河市案宣判柯P解讀:2個小官非常賤
http://www.chinatimes.com/realtimenews/20151228002594-260401
======[ 2 ]=========
北海道巴士對撞11台灣客受傷【更新】
http://www.cna.com.tw/news/firstnews/201512285015-1.aspx
======[ 3 ]=========
邱毅再爆816專案小英研究兩國論索262萬
http://www.chinatimes.com/realtimenews/20151228002822-260401
======[ 4 ]=========
芝加哥警射殺2非裔家屬淚訴停止暴力
http://www.cna.com.tw/news/firstnews/201512285013-1.aspx

...

======[ 40 ]=========
食安再爆!素食也不安全蒟蒻竟摻工業用碱粉
http://www.uho.com.tw/hotnews.asp?aid=39330
======[ 41 ]=========
(用錯染髮劑增膀胱癌風險,3大守則安心變色/圖片取自優活健康網)
http://www.uho.com.tw/hotnews.asp?aid=39317
======[ 42 ]=========
當市長完成創傷急救體系柯P感概想到朱立倫
http://news.ltn.com.tw/news/politics/breakingnews/1553878



延伸閱讀:




參考資料:



#

2013年12月19日 星期四

ubuntu networking interface 設定


使用情境:
  • eth0固定網卡 / wlan0無線網卡 各一
  • 配置固定IP (eth0: 192.168.1.XX / wlan0: 192.168.1.YY)
  • private network : 192.168.1.XXX
  • gateway : 192.168.1.1

/etc/network/interfaces 設定檔內容:

auto lo
iface lo inet loopback
iface eth0 inet static
address 192.168.1.XX
netmask 255.255.255.0
gateway 192.168.1.1

allow-hotplug wlan0
iface wlan0 inet static
wpa 2
wpa-ssid <YOUR_SSID>
wpa-psk <YOUR_PASSWORD>
address 192.168.1.YY
netmask 255.255.255.0
gateway 192.168.1.1


*以上也適用 Raspberry Pi / Wheezy 環境

#

2013年9月22日 星期日

Raspberry Pi 安裝USB無線網卡 (Buffalo WLI-UC-GNM)

安裝USB無線網卡


執行lsub確認Raspberry Pi已經抓到USB無線網路卡。範例為Buffalo WLI-UC-GNM無線網卡

> lsusb

執行結果:
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0411:01a2 BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM Wireless LAN Adapter [Ralink RT8070]
確實抓到網卡(Ralink RT8070相容驅動程式)。

編輯網路介面設定檔案


> vi /etc/network/interfaces
auto lo
iface lo inet loopback

# 設定Ethernet網卡以DHCP取得IP
iface eth0 inet dhcp

# 設定Ethernet網卡以DHCP取得IP
allow-hotplug wlan0
iface wlan0 inet dhcp

# 強制網卡以WPA2方式與Wi-Fi AP連線
wpa 2

# 設定Wi-Fi AP 之SSID與密碼
wpa-ssid <<YOUR_SSID>>
wpa-psk <<YOUR_WPA2_PSK_PASSWORD>>

重新啟動networking

> service networking restart


確認網卡已配置IP

> ifconfig -a

wlan0     Link encap:Ethernet  HWaddr 10:6f:00:00:00:00
          inet addr:192.168.1.7  Bcast:192.168.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3458 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2583 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:602575 (588.4 KiB)  TX bytes:1077331 (1.0 MiB)

已經配置 192.168.1.7 給 wlan0 無線網卡介面

#

2013年8月6日 星期二

2013 AirPort Time Capsule 不負責任測試


2013 AirPort Time Capsule (2TB, 日版) 作為 Time Capsule Server 及 Samba Server 使用,分為下列兩種網路接線模式。

Type A的個人電腦則經由 Fast Ethernet 接至 2013 AirPort Time Capsule(簡稱APTC) 的LAN埠,再以2013 APTC WAN埠接上 ADSL ATUR至Internet。
 Type B的個人電腦和 2013 APTC(WAN埠)則個別經 Fast Ethernet 接上 ADSL ATUR至Internet。
2013 APTC 除了作為Time Capsule備份伺服器之外,也當作Samba (SMB) Server使用儲存照片和影片電子檔。

不負責任測試將一超過1GB大小之影像檔案自2013 APTC複製到PC上,Type A約莫花費4分半鐘時間,而Type B則約花費1分半鐘。

Type A :直接利用影音撥放軟體撥放2013 APTC Samba Server上約700MB之MP4影音檔,只要放大全螢幕時偶有些延遲。Type B:放大至全螢幕時也依然順暢。

感覺上2013 APTC的CPU處理能力或者網路Throughput或許沒想像中夠力,所以不負責推論Type A接法可能會浪費不少APTC額外資源,導致傳輸效能不如想像。但也或許PC及APTC皆以ADSL ATUR 擔任 DHCP Server 取得IP,造成Type A接法TCP/IP封包進出APTC In/Out各一影響傳輸效能所致。

總之不負責地建議有興趣的朋友,可能避免Type A網路接法,或者再更進一步更嚴謹測試比較幾種網路接法,找到能滿足需求、效能又較好的網路架構。

ps. 另外測試 D-Link DWA-171 USB 無線網卡 (USB 2.0 / 802.11ac draft)和2013 APTC可配對相連。不過,DWA-171 理論上只有支援5GHz , 433Mbps所以感覺上傳輸還沒到令人驚豔的地步。如果電腦或筆電有支援USB 3.0的朋友,建議試試其他有支援802.11ac 867Mbps以上網卡試試。

#