中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用python爬蟲+正向代理實現鏈家數據收集

發布時間:2021-11-24 09:45:15 來源:億速云 閱讀:234 作者:小新 欄目:編程語言

這篇文章主要介紹了如何使用python爬蟲+正向代理實現鏈家數據收集,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一、選擇目標網站:

鏈[lian]家[jia]:https://bj.lianjia.com/
如何使用python爬蟲+正向代理實現鏈家數據收集
點擊【租房】,進入租房首頁:
如何使用python爬蟲+正向代理實現鏈家數據收集
這就是要爬取的首頁了;

二、先爬取一頁

1、分析頁面
右擊一個房源的鏈接,點擊[檢查],如圖:
如何使用python爬蟲+正向代理實現鏈家數據收集
進入開發者模式,
此時可以看到 a 標簽中的鏈接:
如何使用python爬蟲+正向代理實現鏈家數據收集
使用 xpath 就可以把鏈接提取出來,不過該鏈接是真實 url 的后半段,需要進行字符串拼接才能獲取到真正的 url;
如何使用python爬蟲+正向代理實現鏈家數據收集
后面會在代碼中體現;
爬取的信息暫且只對下圖中標出的進行爬取:
如何使用python爬蟲+正向代理實現鏈家數據收集
包括 標題、時間、價格、房間格局、面積 ;

三、對全部頁面進行爬取

1、分析頁面 url
如何使用python爬蟲+正向代理實現鏈家數據收集
點擊租房,找到其跳轉到的網頁:https://bj.lianjia.com/zufang/
對,這就是要爬取的首頁:
如何使用python爬蟲+正向代理實現鏈家數據收集
我們往下拉到最底端,點擊下一頁或者其他頁,
第 1 頁:https://bj.lianjia.com/zufang/pg1/#contentList
第 2 也:https://bj.lianjia.com/zufang/pg2/#contentList
第 3 頁:https://bj.lianjia.com/zufang/pg3/#contentList
.
.
.
第 100 頁:https://bj.lianjia.com/zufang/pg100/#contentList

通過觀察 url 可以發現規律:每一頁只有 pg 后面的數字在變,且與頁數相同;
拼接字符串后使用一個循環即可對所有頁面進行爬取;

四、源碼

開發工具:pycharm
python版本:3.7.2

import requests
from lxml import etree

#編寫了一個常用的方法,輸入url即可返回text的文本;
def get_one_page(url):
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36',
    }
    response = requests.get(url,headers=headers)
    response.encoding = 'utf-8'
    if response.status_code == 200:
        return response.text
    else:
        print("請求狀態碼 != 200,url錯誤.")
        return None

for number in range(0,101):     #利用range函數循環0-100,抓去第1頁到100頁。
    initialize_url = "https://bj.lianjia.com/zufang/pg" + str(number) + "/#contentList"     #字符串拼接出第1頁到100頁的url;

    html_result = get_one_page(initialize_url)  #獲取URL的text文本
    html_xpath = etree.HTML(html_result)        #轉換成xpath格式
    #抓去首頁中的url(每頁有30條房源信息)
    page_url = html_xpath.xpath("//div[@class='content w1150']/div[@class='content__article']//div[@class='content__list']/div/a[@class='content__list--item--aside']/@href")

    for i in page_url:      #循環每一條房源url
        true_url = "https://bj.lianjia.com" + i     #獲取房源的詳情頁面url
        true_html = get_one_page(true_url)      #獲取text文本
        true_xpath = etree.HTML(true_html)      #轉換成xpath格式

        #抓取頁面題目,即:房源詳情頁的標題
        title = true_xpath.xpath("//div[@class='content clear w1150']/p[@class='content__title']//text()")
        #抓取發布時間并對字符串進行分割處理
        release_date = true_xpath.xpath("//div[@class='content clear w1150']//div[@class='content__subtitle']//text()")
        release_date_result = str(release_date[2]).strip().split(":")[1]
        #抓取價格
        price = true_xpath.xpath("//div[@class='content clear w1150']//p[@class='content__aside--title']/span//text()")
        #抓取房間樣式
        house_type = true_xpath.xpath("//div[@class='content clear w1150']//ul[@class='content__aside__list']//span[2]//text()")
        #抓取房間面積
        acreage = true_xpath.xpath("//div[@class='content clear w1150']//ul[@class='content__aside__list']//span[3]//text()")

        print(str(title) + " --- " + str(release_date_result) + " --- " + str(price) + " --- " + str(house_type) + " --- " + str(acreage))

        #寫入操作,將信息寫入一個text文本中
        with open(r"E:\admin.txt",'a') as f:
            f.write(str(title) + " --- " + str(release_date_result) + " --- " + str(price) + " --- " + str(house_type) + " --- " + str(acreage) + "\n")

最后將爬取的信息一邊輸出一邊寫入文本;當然也可以直接寫入 JSON 文件或者直接存入數據庫;

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何使用python爬蟲+正向代理實現鏈家數據收集”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

勐海县| 富阳市| 棋牌| 信丰县| 周至县| 冀州市| 微山县| 安阳市| 名山县| 吉隆县| 平安县| 安新县| 高阳县| 和田县| 琼中| 肃宁县| 丰台区| 杂多县| 禹州市| 济阳县| 临安市| 油尖旺区| 津市市| 新昌县| 上林县| 陇西县| 桐庐县| 绿春县| 平塘县| 高邑县| 密山市| 通许县| 遵义市| 乌鲁木齐县| 江华| 都兰县| 佛坪县| 绥阳县| 安宁市| 商水县| 济南市|