為什么正確輸入代碼后運(yùn)行結(jié)果是空白呢?
from urllib.request import urlopen
from bs4 import BeautifulSoup as bs
import re
resp = urlopen("https://en.wikipedia.org/wiki/Main_Page").read().decode("utf-8")
soup = bs(resp,"html.parser")
listUrls = soup.findAll("a", herf=re.compile("^/wiki/"))
for url in listUrls:
? ?print(url["herf"])
2016-09-01
最后一行?print(url["herf"])
里面的 herf 改成 href 試試看
2016-09-03
沒有寫錯(cuò)的情況下,我還沒有遇到過采集空白的問題,如果網(wǎng)站有防爬蟲的機(jī)制,一般都是采集了一個(gè)錯(cuò)誤頁面,或者是和你使用瀏覽器看到的樣子不一樣的HTML代碼。
網(wǎng)站是服務(wù)器來判斷的,而服務(wù)器沒有多么的聰明,能夠區(qū)分人和爬蟲,再精密的檢查,也能夠通過程序代碼來破解,所以大部分網(wǎng)站防爬蟲最簡單的手段就是通過驗(yàn)證碼和驗(yàn)證問題,就算是百度也是這么做的。
2016-09-03
老師,假如程序沒寫錯(cuò)的情況下采集結(jié)果空白,怎么判斷網(wǎng)站反爬蟲機(jī)制起作用了呢?有沒有相關(guān)的課程學(xué)習(xí)下?
2016-09-03
真是打錯(cuò)了!汗顏,謝謝老師!