电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

記一次python 爬蟲(chóng)爬取深圳租房信息的過(guò)程及遇到的問(wèn)題

瀏覽:111日期:2022-07-04 14:54:39

為了分析深圳市所有長(zhǎng)租、短租公寓的信息,爬取了某租房公寓網(wǎng)站上深圳區(qū)域所有在租公寓信息,以下記錄了爬取過(guò)程以及爬取過(guò)程中遇到的問(wèn)題:

爬取代碼:

import requestsfrom requests.exceptions import RequestExceptionfrom pyquery import PyQuery as pqfrom bs4 import BeautifulSoupimport pymongofrom config import *from multiprocessing import Poolclient = pymongo.MongoClient(MONGO_URL) # 申明連接對(duì)象db = client[MONGO_DB] # 申明數(shù)據(jù)庫(kù)def get_one_page_html(url): # 獲取網(wǎng)站每一頁(yè)的html headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/85.0.4183.121 Safari/537.36' } try: response = requests.get(url, headers=headers) if response.status_code == 200: return response.text else: return None except RequestException: return Nonedef get_room_url(html): # 獲取當(dāng)前頁(yè)面上所有room_info的url doc = pq(html) room_urls = doc(’.r_lbx .r_lbx_cen .r_lbx_cena a’).items() return room_urlsdef parser_room_page(room_html): soup = BeautifulSoup(room_html, ’lxml’) title = soup.h1.text price = soup.find(’div’, {’class’: ’room-price-sale’}).text[:-3] x = soup.find_all(’div’, {’class’: ’room-list’}) area = x[0].text[7:-11] # 面積 bianhao = x[1].text[4:] house_type = x[2].text.strip()[3:7] # 戶型 floor = x[5].text[4:-2] # 樓層 location1 = x[6].find_all(’a’)[0].text # 分區(qū) location2 = x[6].find_all(’a’)[1].text location3 = x[6].find_all(’a’)[2].text subway = x[7].text[4:] addition = soup.find_all(’div’, {’class’: ’room-title’})[0].text yield { ’title’: title, ’price’: price, ’area’: area, ’bianhao’: bianhao, ’house_type’: house_type, ’floor’: floor, ’location1’: location1, ’location2’: location2, ’location3’: location3, ’subway’: subway, ’addition’: addition }def save_to_mongo(result): if db[MONGO_TABLE].insert_one(result): print(’存儲(chǔ)到mongodb成功’, result) return True return Falsedef main(page): url = ’http://www.xxxxx.com/room/sz?page=’ + str(page) # url就不粘啦,嘻嘻 html = get_one_page_html(url) room_urls = get_room_url(html) for room_url in room_urls: room_url_href = room_url.attr(’href’) room_html = get_one_page_html(room_url_href) if room_html is None: # 非常重要,否則room_html為None時(shí)會(huì)報(bào)錯(cuò) pass else: results = parser_room_page(room_html) for result in results:save_to_mongo(result)if __name__ == ’__main__’: pool = Pool() # 使用多進(jìn)程提高爬取效率 pool.map(main, [i for i in range(1, 258)])

在寫(xiě)爬取代碼過(guò)程中遇到了兩個(gè)問(wèn)題:

(一)在get_room_url(html)函數(shù)中,開(kāi)始是想直接return每個(gè)租房信息的room_url,但是return不同于print,函數(shù)運(yùn)行到return時(shí)就會(huì)結(jié)束該函數(shù),這樣就只能返回每頁(yè)第一個(gè)租房room_url。解決辦法是:return 包含每頁(yè)所有room_url的generator生成器,在main函數(shù)中用for循環(huán)遍歷,再?gòu)拿總€(gè)room_url中獲取href,傳入到get_one_page_html(room_url_href)中進(jìn)行解析。

(二)沒(méi)有寫(xiě)第76行的if語(yǔ)句,我默認(rèn)get_one_page_html(room_url_href)返回的room_html不為空,因此出現(xiàn)multiprocessing.pool.RemoteTraceback報(bào)錯(cuò):

記一次python 爬蟲(chóng)爬取深圳租房信息的過(guò)程及遇到的問(wèn)題

上圖中顯示markup為None情況下報(bào)錯(cuò),點(diǎn)擊藍(lán)色'F:ProgramFilesanaconda3libsite-packagesbs4__init__.py'發(fā)現(xiàn)markup為room_html,即部分room_html出現(xiàn)None情況。要解決這個(gè)問(wèn)題,必須讓代碼跳過(guò)room_html is None的情況,因此添加 if 語(yǔ)句解決了這個(gè)問(wèn)題。

最終成功爬取某租房公寓深圳市258頁(yè)共4755條租房信息,為下一步進(jìn)行數(shù)據(jù)分析做準(zhǔn)備。

記一次python 爬蟲(chóng)爬取深圳租房信息的過(guò)程及遇到的問(wèn)題

其中單條信息:

記一次python 爬蟲(chóng)爬取深圳租房信息的過(guò)程及遇到的問(wèn)題

以上就是記一次python 爬蟲(chóng)爬取深圳租房信息的過(guò)程及遇到的問(wèn)題的詳細(xì)內(nèi)容,更多關(guān)于python 爬蟲(chóng)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 南京兰江泵业有限公司-水解酸化池潜水搅拌机-絮凝反应池搅拌机-好氧区潜水推进器 | 液压油缸-液压缸厂家价格,液压站系统-山东国立液压制造有限公司 液压油缸生产厂家-山东液压站-济南捷兴液压机电设备有限公司 | 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 灰板纸、灰底白、硬纸板等纸品生产商-金泊纸业 | 春腾云财 - 为企业提供专业财税咨询、代理记账服务 | 山东螺杆空压机,烟台空压机,烟台开山空压机-烟台开山机电设备有限公司 | 威海防火彩钢板,威海岩棉复合板,威海彩钢瓦-文登区九龙岩棉复合板厂 | [品牌官网]贵州遵义双宁口腔连锁_贵州遵义牙科医院哪家好_种植牙_牙齿矫正_原华美口腔 | 德国GMN轴承,GMN角接触球轴承,GMN单向轴承,GMN油封,GMN非接触式密封 | 深圳VI设计-画册设计-LOGO设计-包装设计-品牌策划公司-[智睿画册设计公司] | | 深圳标识制作公司-标识标牌厂家-深圳广告标识制作-玟璟广告-深圳市玟璟广告有限公司 | 不锈钢管件(不锈钢弯头,不锈钢三通,不锈钢大小头),不锈钢法兰「厂家」-浙江志通管阀 | 钢结构厂房造价_钢结构厂房预算_轻钢结构厂房_山东三维钢结构公司 | 数码管_LED贴片灯_LED数码管厂家-无锡市冠卓电子科技有限公司 | 陕西鹏展科技有限公司| 制氮设备_PSA制氮机_激光切割制氮机_氮气机生产厂家-苏州西斯气体设备有限公司 | 电子书导航网_电子书之家_电子书大全_最新电子书分享发布平台 | 亚克力制品定制,上海嘉定有机玻璃加工制作生产厂家—官网 | 无锡市珂妮日用化妆品有限公司|珂妮日化官网|洗手液厂家 | Type-c防水母座|贴片母座|耳机接口|Type-c插座-深圳市步步精科技有限公司 | 化工ERP软件_化工新材料ERP系统_化工新材料MES软件_MES系统-广东顺景软件科技有限公司 | 成都办公室装修-办公室设计-写字楼装修设计-厂房装修-四川和信建筑装饰工程有限公司 | 礼仪庆典公司,礼仪策划公司,庆典公司,演出公司,演艺公司,年会酒会,生日寿宴,动工仪式,开工仪式,奠基典礼,商务会议,竣工落成,乔迁揭牌,签约启动-东莞市开门红文化传媒有限公司 | 冷镦机-多工位冷镦机-高速冷镦机厂家-温州金诺机械设备制造有限公司 | 小型高低温循环试验箱-可程式高低温湿热交变试验箱-东莞市拓德环境测试设备有限公司 | 云杂志网-学术期刊-首页 | 广州二手电缆线回收,旧电缆回收,广州铜线回收-广东益福电缆线回收公司 | 武汉高低温试验机-现货恒温恒湿试验箱-高低温湿热交变箱价格-湖北高天试验设备 | 采暖炉_取暖炉_生物质颗粒锅炉_颗粒壁炉_厂家加盟批发_烟台蓝澳采暖设备有限公司 | 德州万泰装饰 - 万泰装饰装修设计软装家居馆 | 电动车头盔厂家_赠品头盔_安全帽批发_山东摩托车头盔—临沂承福头盔 | 中宏网-今日新闻-财经新闻| 彩信群发_群发彩信软件_视频短信营销平台-达信通 | 消电检公司,消电检价格,北京消电检报告-北京设施检测公司-亿杰(北京)消防工程有限公司 | 臭氧老化试验箱,高低温试验箱,恒温恒湿试验箱,防水试验设备-苏州亚诺天下仪器有限公司 | 517瓜水果特产网|一个专注特产好物的网站| 小学教案模板_中学教师优秀教案_高中教学设计模板_教育巴巴 | 硫化罐-电加热蒸汽硫化罐生产厂家-山东鑫泰鑫智能装备有限公司 |