伊谢尔伦2017-04-18 09:33:41
經過實測,結論是 bs4 改變了屬性的順序。
評論元素
查看網頁原始碼
import re
ptn_tr = re.compile(r'<tr[^>]+>')
import requests as req
rsp=req.get('http://www.pythonscraping.com/pages/page3.html')
html = rsp.text
print('requests:\t', ptn_tr.findall(html)[0])
from urllib.request import urlopen
rsp = urlopen("http://www.pythonscraping.com/pages/page3.html")
html = rsp.read().decode()
print('urlopen:\t', ptn_tr.findall(html)[0])
from bs4 import BeautifulSoup
html = str(BeautifulSoup(html,"lxml"))
print('bs4Soup:\t', ptn_tr.findall(html)[0])
結果:
requests: <tr id="gift1" class="gift">
urlopen: <tr id="gift1" class="gift">
bs4Soup: <tr class="gift" id="gift1">
高洛峰2017-04-18 09:33:41
建議題主把網站甚至自己的程式碼貼出來,方便大家幫你調試。不一樣很正常,如果你爬蟲爬下來的內容保存為靜態頁面,和你用瀏覽器看到的不一樣,那麼肯定是對對方反爬蟲機制給識別了,所以伺服器會返回不同的資訊。辨識爬蟲的方法很多,題主如果還有疑惑歡迎再問