html - 為什么BeautifulSoup find_all 返回的list都不是按照網頁顯示順序排序的?
問題描述
我想爬糗百的段子,顯示作者,和對應的段子,先只爬第一面
import requestsfrom bs4 import BeautifulSoup as bspage = 1url = 'http://www.qiushibaike.com/hot/page/'r = requests.get(url+str(page))soup = bs(r.content,'html.parser')names = []for n in soup.find_all('a',{'href':True,'target':True,'title':True}): names += [n.h2.get_text()]print(names)
print 結果:
[’威信紅包接龍關注’, ’ZBZBZBZ’, ’養賊專業戶’, ’柱流年’, ’大風起兮雪飛揚’, ’依然家的麥芽糖’, ’小小&妖精’, ’蒼南下山耍流氓,黑衣格哥買紅糖’, ’九妹妹~’, ’親愛de橄欖綠’, ’有點胖的妮妮’, ’污奇奇’, ’沒辦法就是這么帥’, ’亦龍’, ’哇噻~桃寶’, ’單名一個飯字’, ’ni敢拿命疼我嗎?’, ’許我三日暖’, ’半闕詞曲丶’, ’誰動了我的糧食?’]
html.fromstring xpath 也這樣
from lxml import htmlimport requestspage = 1url = 'http://www.qiushibaike.com/hot/page/'r = requests.get(url+str(page))tree = html.fromstring(r.content)print(tree.xpath(’//*[@class='article block untagged mb15']/p[1]/a[2]/h2/text()’))
print 結果:
[’威信紅包接龍關注’, ’ZBZBZBZ’, ’養賊專業戶’, ’大風起兮雪飛揚’, ’柱流年’, ’依然家的麥芽糖’, ’小小&妖精’, ’蒼南下山耍流氓,黑衣格哥買紅糖’, ’九妹妹~’, ’親愛de橄欖綠’, ’有點胖的妮妮’, ’污奇奇’, ’沒辦法就是這么帥’, ’亦龍’, ’單名一個飯字’, ’ni敢拿命疼我嗎?’, ’許我三日暖’, ’半闕詞曲丶’, ’根@兒’, ’我是你的絕無僅有’]
但網頁的實際顯示順序是:
[’威信紅包接龍關注’, ’養賊專業戶’, ’ZBZBZBZ’, ’柱流年’, ’有點胖的妮妮’, ’依然家的麥芽糖’, ’小小&妖精’, ’大風起兮雪飛揚’, ’蒼南下山耍流氓,黑衣格哥買紅糖’, ’九妹妹~’, ’亦龍’...]
如何讓返回的list的元素的順序和網頁顯示順序相同?
問題解答
回答1:應該是因為它頁面的內容的排序是在變動的。他的排序是根據評論里面的個“好笑”數來排的,好笑 數字接近的,順序變化正常,而且有時有新的段子加入這頁。你瀏覽器取得頁面的時間,和爬蟲爬取的時間不一樣,看到的段子順序不一樣很正常。
相關文章:
1. javascript - webpack1和webpack2有什么區別?2. thinkPHP5中獲取數據庫數據后默認選中下拉框的值,傳遞到后臺消失不見。有圖有代碼,希望有人幫忙3. django - Python error: [Errno 99] Cannot assign requested address4. 求救一下,用新版的phpstudy,數據庫過段時間會消失是什么情況?5. python小白,關于函數問題6. javascript - vscode alt+shift+f 格式化js代碼,通不過eslint的代碼風格檢查怎么辦。。。7. python小白 關于類里面的方法獲取變量失敗的問題8. Python2中code.co_kwonlyargcount的等效寫法9. [python2]local variable referenced before assignment問題10. python - vscode 如何在控制臺輸入
