某房產網資訊爬取

2021-10-05 22:08:25 字數 4481 閱讀 1871

有反爬,出現訪問驗證!窮人,手裡沒啥**?!

因為是著名大站,所以只貼出部分,防止侵權或者非法用途等等,僅供學習交流,我也是個菜!愁人!

class

ftxspider

(scrapy.spider)

: name =

'ftx'

allowed_domains =

['fang.com'

] start_urls =

['']def

parse

(self, response)

: tr_list = response.xpath(

'//div[@id="c02"]/table/tr'

)for tr in tr_list:

citys = tr.xpath(

'./td[last()]/a'

) ids = tr.xpath(

'./@id'

).extract(

)#ids獲取的是海外的房產資訊,這部分不需要

forid

in ids:

ifid

!="sffamily_b03_30"

:for city in citys:

item = fangtianxiaitem(

) item[

"city"

]= city.xpath(

"./text()"

).extract_first(

) city_url = city.xpath(

"./@href"

).extract_first(

).strip(

) city_url = response.urljoin(city_url)

yield scrapy.request(url=city_url, callback=self.two_parse, meta=

, dont_filter=

true

)def

two_parse

(self, response)

: item = response.meta[

"item"

] two_url = response.xpath(

"//div[@class='s6']/div[@class='listbox']/ul/li/a/@href"

).extract_first(

)#有的是直接跳到列表頁,有的不是所以if else判斷一下,不是所有的都一樣,所以要多點開看看

if two_url is

notnone

:yield scrapy.request(url=two_url, callback=self.list_page, meta=

, dont_filter=

true

)else

:yield scrapy.request(url=response.url, callback=self.list_page, meta=

, dont_filter=

true

)def

list_parse

(self, response)

:# item = response.meta['item']

dl_list = response.xpath(

'//div[@class="shop_list shop_list_4"]/dl'

)for dl in dl_list:

time.sleep(3)

item = fangtianxiaitem(

) item[

"title"

]= dl.xpath(

'./dd/h4[@class="clearfix"]/a/span/text()'

).extract_first(

)#有的字段有,有的字段沒有,if一下吧

if item[

"title"]:

item[

"title"

]= item[

"title"

].strip(

) item[

"structure"

]= dl.xpath(

'./dd/p[1]/text()[1]'

).extract_first(

)if item[

"structure"]:

item[

"structure"

]= item[

"structure"

].strip(

) item[

"mm"

]= dl.xpath(

'./dd/p[1]/text()[2]'

).extract_first(

)if item[

"mm"]:

item[

"mm"

]= item[

"mm"

].strip(

) item[

"height"

]= dl.xpath(

'./dd/p[1]/text()[3]'

).extract_first(

)if item[

"height"]:

item[

"height"

]= item[

"height"

].strip(

) item[

"fangxiang"

]= dl.xpath(

'./dd/p[1]/text()[4]'

).extract_first(

)if item[

"fangxiang"]:

item[

"fangxiang"

]= item[

"fangxiang"

].strip(

) item[

"year"

]= dl.xpath(

'./dd/p[1]/text()[5]'

).extract_first(

)if item[

"year"]:

item[

"year"

]= item[

"year"

].strip(

) item[

"people"

]= dl.xpath(

'./dd/p[1]/span/a/text()'

).extract_first(

)if item[

"people"]:

item[

"people"

]= item[

"people"

].strip(

)#這翻頁真是個坑

next_one = response.xpath(

'//*[@id="list_d10_15"]/p[1]/a'

) next_next = response.xpath(

'//*[@id="list_d10_15"]/p[3]/a'

)if next_one.xpath(

"./@href"

).extract_first(

)and next_one.xpath(

"./text()"

).extract_first()==

: next_one_url = response.urljoin(next_one.xpath(

"./@href"

).extract_first())

print

(next_one_url)

yield scrapy.request(url=next_one_url, callback=self.list_parse, meta=

)else

:if next_next.xpath(

"./@href"

).extract_first(

)and next_next.xpath(

"./text()"

).extract_first()==

: next_next_url = response.urljoin(next_next.xpath(

"./@href"

).extract_first())

print

(next_next_url)

yield scrapy.request(url=next_next_url, callback=self.list_parse, meta=

)

爬取豆瓣網電影資訊

coding utf 8 import urllib2 import bs4 from bs4 import beautifulsoup 爬取豆瓣網電影簡介,包括電影名,導演,評分以及介紹等 class dbtop def init self self.usr agent mozilla 5.0 w...

黔西南房產網啟用新網域名稱公告

陪伴了大家 2年多的 qxnfdc.net 現在更換新網域名稱,這是歷史性的一刻。原來的網域名稱感覺太長,雖然是漢語拼音,還是不夠好記,而且 net 的網域名稱用在商業 上似乎不太妥當。於是,我們決定啟用新的網域名稱 0859fdc.com 更簡單 更直接明了 方便記憶!0859 是黔西南的區號,f...

新力房產網 v1 0 0 1 快速更新模板

程式說明 1.本程式是基於asp 上的.2.本程式功能齊全,後台新增簡單易懂,只要看著文字就可以操作 的功能 3.本程式相容多個瀏覽器。4.本程式模板可以匯入,匯出,便於快速更新模板。5.本程式支援access和sql兩種資料庫。6 本程式有 系統管理,新聞專區,樓盤展示,房產資訊,黃頁資訊,其它業...