自己寫的小**,對齊上還需要改進
import requests
import os
from bs4 import beautifulsoup
import bs4
defgethtmltext
(url):
try:
kv =
r = requests.get(url,headers = kv)
r.raise_for_status()
return r.text
except:
return
""def
fillunivlist
(ulist,html):
soup = beautifulsoup(html,'html.parser')
for tr in soup.find('tbody').children:
if isinstance(tr,bs4.element.tag):
tds = tr('td')
defprintunivlist
(ulist,num):
path = '路徑,你懂得'
try:
if os.path.exists(path):
with open(path,'wb') as f:
temp = '\t\t'.format('排名','學校名稱','總分',chr(12288))+"\r\n"
f.write(temp.encode('utf-8'))
for i in range(num):
u = ulist[i]
temp = '\t\t'.format(u[0],u[1],u[2],chr(12288))+"\r\n"
f.write(temp.encode('utf-8'))
f.close()
print('done')
else:
print('exited')
except:
print('failed')
uinfo =
url = ""
html = gethtmltext(url)
fillunivlist(uinfo,html)
printunivlist(uinfo,20)
值得注意的有兩點,寫入檔案時decode,以及換行時」\r\n」
in python 3, bytes strings and unicode strings are now two different types.
python3中對bytes strings和unicode strings區別對待,因此注意解碼
另外換行不能用\n,而是\r\n
python 爬蟲存入本地
一,open函式 開啟本地檔案的方法 with open path r as f f.write data path是檔案的路徑,r是read讀取,w就write寫入,f是操作這個連線的物件 二,操作字串的方法 替代用的format,乙個字串str裡面加上 然後用.format new str 把n...
python爬網頁亂碼
最近搞爬蟲網頁經常亂碼,查了很多終於整出來了。關於解碼編碼decode和encode 首先要搞清楚,字串在python內部的表示是unicode編碼,因此,在做編碼轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字串解碼 decode 成unicode,再從unicode編碼 enco...
Python 爬取網頁
先謝郭嘉 以鏈家二手房為例 1.爬取網頁所必須的庫 import urllib.request import ssl 2.獲取預爬網頁資訊 1 網頁url 3.下面就可以爬取網頁了 以鏈家二手房為例 1.爬取網頁所必須的庫 import urllib.request import ssl 2.獲取預...