python 爬取帖子的鏈結遇到的問題並解決

2021-08-16 20:29:10 字數 1444 閱讀 9322

import urllib2

import urllib

from lxml import etree

def tieba_spider(fullurl):

headers =

request = urllib2.request(fullurl,headers = headers)

html = urllib2.urlopen(request).read()

content = etree.html(html)

link_list = content.xpath('//div[@class="t_con cleafix"]/div/div/div/a/@href')

for link in link_list:

print link

if __name__ == '__main__':

fullurl = ""

tieba_spider(fullurl)

這是一開始的**,xpath用google瀏覽器上面的外掛程式xpath-helper驗證過,沒有問題,但返回的link_list就是空,一開始我還查以為是google的xpath-helper外掛程式有問題,查詢資料發現不是,於是我就懷疑問題出在返回的html中,我就先用xpath查詢頭部,發現可以返回,看貼吧那頁的源**,發現帖子那些居然被注釋了,終於發現原因了,經過測試,注釋的是不會被xpath檢測的,匹配不到,於是我先用正則把注釋的符號替換為'',然後再經過xpath,就可以成功返回了,一點小小的經驗。

修改之後的**:

import urllib2

import urllib

import re

from lxml import etree

def tieba_spider(fullurl):

headers =

request = urllib2.request(fullurl,headers = headers)

text = urllib2.urlopen(request).read()

pattern = re.compile(r"()", re.s)

html = pattern.sub('', text)

content = etree.html(html)

link_list = content.xpath('//div[@class="t_con cleafix"]//a[@class="j_th_tit "]/@href')

for link in link_list:

print link

fullurl = ""

tieba_spider(fullurl)

成功獲取鏈結

帖子資訊爬取

coding utf 8 import requests import re j dub 小吧主 13 有的人天之驕子,從選秀便是球隊核心有的人甘作綠葉,一心一意幹好自己的事有的人能力有限,最後只能被聯盟淘汰而有的人 雖有天賦,但是球隊的處境讓他無法讓他的天賦得到兌現,而他們可能在離開球隊後,便得到...

python動態爬取知乎 python爬取微博動態

在初學爬蟲的過程中,我們會發現很多 都使用ajax技術動態載入資料,和常規的 不一樣,資料是動態載入的,如果我們使用常規的方法爬取網頁,得到的只是一堆html 沒有任何的資料。比如微博就是如此,我們可以通過下滑來獲取更多的動態。對於這樣的網頁該如何抓取呢?我們以微博使用者動態為例,抓取某名使用者的文...

爬取frame內的多條鏈結

python爬網頁功能強大是眾所周知,一直想試試,卻一直沒有決心做。最近收到乙個任務,爬取一些go的資料。要爬的 是go語言標準庫,首先分析下需要用到的知識 如下 coding utf8 import requests from bs4 import beautifulsoup from selen...