بيثون الزحف بكين بيانات الإسكان المستعملة، شمال سباق الانجراف الإسكان الميسر ذلك؟ (مع كامل شفرة المصدر)

المصدر: CSDN

هذه المقالة حول 3500 كلمات القراءة الموصى بها 9 دقائق.

وفقا لالزحف غانجي بكين بيانات الإسكان المستعملة بيثون، R الزحف على أسعار المساكن المستعملة تفعل تحليل الانحدار الخطي، لمجرد الاتصال مع بيثون والطلاب R تعلم المرجعية.

كانت الأسعار مرتفعة موضوع تهم الانجراف الشمال، وقد تم تحليل هذه المادة على بيانات الإسكان المستعملة في بكين.

وتنقسم هذه الورقة إلى قسمين: بيثون الزحف غانجي بكين بيانات الإسكان المستعملة، R الزحف على المستعملة أسعار المساكن تفعل تحليل الانحدار الخطي، لمجرد الاتصال مع بيثون والطلاب R تعلم المرجعية.

بيثون الزحف غانجي بكين بيانات الإسكان المستعملة

الحصول على الزواحف الشهر، وذلك لكل موقع استخدام XPath، حساء جميل، وأساليب ثلاثة العادية الزحف للتمارين لتعزيز. البيانات من المصادر التالية:

كسباث الزحف:

هنا الحل الرئيسي استخدام XPath كيفية تحديد ما إذا كانت بعض العناصر من المشاكل القائمة، مثل ما إذا كان البيت ليس المعلومات مفروشة، جنبا إلى جنب مع الحكم لا، هناك لن عناصر معينة يؤدي إلى الزحف انقطاع.

requestsfrom استيراد requests.exceptions etreefrom lxml استيراد استيراد RequestExceptionimport multiprocessingimport timeheaders = { 'عامل المستخدم': 'موزيلا / 5.0 (ويندوز NT 10.0. WOW64) AppleWebKit / 537.36 (KHTML، مثل أبو بريص) كروم / سفاري 55.0.2883.87 / 537.36'} مواطنه get_one_page (رابط): محاولة: استجابة = requests.get (رابط، ورؤوس = الرؤوس) إذا response.status_code == 200: عودة response.text عودة لا يوجد إلا requestException: عودة Nonedef parse_one_page (المحتوى): محاولة: محدد = يتري. HTML (المحتوى) ALL = selector.xpath ( '// * / شعبة / شعبة / شعبة / شعبة / شعبة') للشعبة في ALL : العائد { 'اسم': div.xpath ( 'دل / ي / أ / النص ()') ، 'نوع': div.xpath ( 'دل / ي / تمتد / النص () ') ،' المنطقة ': div.xpath (' دل / ي / SPAN / النص () ') ، "نحو': div.xpath ( 'دل / يوم / SPAN / النص () ') ،' الدور ': div.xpath (' دل / ي / SPAN / النص () ') . . قطاع () محل ( '\ ن'، "")، "زين": div.xpath ( 'دل / ي / SPAN / النص ()') ، يتطلب # عنوان معالجة خاصة في "العنوان": div.xpath ( 'دل / يوم // النص ()') + شعبة. كسباث ( 'دل / يوم // النص ()') .replace ( '\ ن'، '') + div.xpath ( 'دل / يوم // النص ()') < 4> .strip ()، 'TotalPrice': div.xpath ( 'دل / ي / شعبة / تمتد / النص ()') + div.xpath ( 'دل / يوم / شعبة / SPAN / النص () ') ،' الأسعار ': div.xpath (' دل / ي / شعبة / النص () ') < 0>} إذا شعبة == بلا: ## بإضافة هنا تحديد إذا عنصر واحد فارغ، ثم خرج لا يوجد مقابل لا شيء فيما عدا الاستثناء: عودة Nonedef الرئيسية (): لأنني في مجموعة (1، 500): # مجموعة هنا الزحف 500 البيانات في نطاق البيانات، يمكننا وضع مبلغ من الزحف URL = " المحتوى = get_one_page (رابط)

جميل حساء الزحف:

requestsimport استيراد requests.exceptions refrom استيراد RequestExceptionfrom BS4 استيراد BeautifulSoupimport timeheaders csvimport = { 'عامل المستخدم': 'موزيلا / 5.0 (ويندوز NT 10.0. WOW64) AppleWebKit / 537.36 (KHTML، مثل أبو بريص) كروم / سفاري 55.0.2883.87 / 537.36 " } مواطنه get_one_page (رابط): محاولة: استجابة = requests.get (رابط، ورؤوس = الرؤوس) إذا response.status_code == 200: عودة response.text عودة لا يوجد إلا requestException: عودة Nonedef parse_one_page (المحتوى): محاولة: شوربة = BeautifulSoup (المحتوى، 'html.parser') البنود = soup.find ( 'شعبة، class_ = re.compile (' شبيبة نصائح القائمة ')) للشعبة في items.find_all (' شعبة، class_ = re.compile ( 'ershoufang القائمة')): العائد { 'اسم' :. div.find ( "أ"، class_ = re.compile ( 'شبيبة عنوان')) النص، 'نوع': div.find ( 'ي' .، class_ = re.compile ( 'حجم')) محتويات .text، ووضع العلامة عقدة تابعة # .contents الملكية يمكن أن يكون الناتج في قائمة سمة 'المنطقة': div.find ( 'ي'، class_ . = re.compile ( 'حجم')) محتويات .text، "نحو ': div.find (' ي '، class_ = re.compile (' حجم ')) محتويات .text،. الكلمة ': div.find (' دد '، class_ = re.compile (' حجم ')) محتويات .text.replace (.' \ ن '،' ')،' زين ': div.find (' ي '، class_ = re.compile . ( 'حجم')) محتويات .text، 'العنوان': div.find ( 'مدى'، class_ = re.compile ( 'منطقة')) text.strip () محل ( ''، '.. ') .replace (' \ ن '،' ')،' TotalPrice ': div.find (' مدى '، class_ = re.compile (' شبيبة سعر ').) نص + div.find (' مدى '، . class_ = re.compile ( 'يو')) النص، 'الأسعار' :. div.find ( 'شعبة، class_ = re.compile (' الوقت ')) النص} الإسكان # يد بعض المعلومات مفقود جزء من المعلومات، مثل: عدم وجود الديكور المعلومات، الأرض أو نقص المعلومات، وهذه المرة حاجة لإضافة قاض، أو الزحف سيتم توقف. إذا شعبة == بلا: عودة لا يوجد إلا استثناء: عودة Nonedef الرئيسية (): لأنني في مجموعة (1،50): URL = " المحتوى = get_one_page (رابط) طباعة ( 'أولا { } الصفحة هي المنال مرة واحدة فقط ".format (ط)) للشعبة في parse_one_page (المحتوى): طباعة (شعبة) مع فتح ( 'data.csv'، 'ا'، السطر = '') كما و: ملف data.csv # مسار التخزين، إذا كان المسار الافتراضي الكتابة مباشرة اسم الملف. fieldnames = الكاتب = csv.DictWriter (و، fieldnames = fieldnames ) writer.writeheader () لمادة في parse_one_page (المحتوى): writer.writerow (البند) time.sleep (3) # تعيين تردد الزحف، في البداية كنت الزحف بسرعة كبيرة، مما أدى إلى الصفحات التي تتطلب مصادقة. إذا __name __ == '__ main__':

الزحف العادية: لقد درست لفترة طويلة، لم تحل حتى الآن.

هذه العملية هي من السهل أن المشاكل التي واجهتها هي:

  • هناك بعض المنازل في عداد المفقودين بعض المعلومات، مثل عدم وجود الديكور المعلومات، وهذه المرة الحاجة لإضافة الحكم، إن لم يكن تحديد، والزحف سوف تنهي تلقائيا (هنا سقطت حفرة كبيرة).
  • Data.csv المعرفة المخزنة في مسار الملف هو دليل العمل الافتراضي في بيثون حول كيفية عرض دليل العمل:
استيراد نظام التشغيل # إرسال الافتراضي pyhton دليل العمل الطباعة (os.getcwd ()) # عند تعديل os.chdir دليل العمل ( 'ه: \ workpython') طباعة (os.getcwd ()) # الانتاج دليل العمل ه: \ workpython
  • الزواحف الطباعة القاموس، كل بيت هو قاموس من المعلومات، لأن المكتبة هي المعرفة المتعلقة بيثون في التفوق بقعة عمياء، لذلك عند كتابة دورة القاموس الزواحف مباشرة إلى CSV.

Pycharm الطباعة على النحو التالي:

في القاموس دورات الكتابة تأثير مباشر CSV يلي:

  • كثير من المبتدئين لا يعرفون كيفية التعامل مع لعنوان، حساء جميلة التأكيد هنا في استخدام .contents، تجربة شخصية، وأنا هنا لقضاء الكثير من الوقت للعثور على الجواب.

R القيام العام تحليل الانحدار الخطي من الزحف أسعار المساكن اليد

هنا نستخدم R للقيام ببعض تحليل بسيط من غانجي بكين بيانات الإسكان المستعملة التي تم التقاطها.

وصف البيانات

الاسم: العمل الرئيسي هو عنوان لافتة للنظر، ليس لديهم التحليلي نوع القيمة المرجعية: نوم ورقم الغرفة، وعدد من الحمامات المساحة: مساحة (متر مربع) نحو: نحو الطابق: الطوابق تزيين: صالح، مثل الديكور، والديكور البسيط، الخام عنوان الفندق: ذات اليد الثانية عنوان السكن TotalPrice: السعر الإجمالي السعر: متوسط سعر (RMB / متر مربع) تنظيف البيانات معطيات < -read.csv ( "E: // البيانات لR / RData / data.csv") البيانات < داتا # واسم وعنوان اثنين من البيانات إزالة

# الزحف عندما انضمت الحكم، فإنه لا أعرف إذا كان هناك قيمة البيانات الناقصة الزحف، تحقق هنا colSums (is.na (البيانات))

# اكتب هنا غرفة المعيشة وغرفة نوم وحمام وينقسم إلى ثلاثة أعمدة مختلفة ## وتجدر الإشارة إلى أنه لا توجد المنازل، مثل غرفة المعيشة: 1 غرفة 1 وي الوقت للتعامل مع هذا وحده، لا توجد معلومات المراحيض. مكتبة (tidyr) مكتبة (stringr) البيانات = منفصلة (بيانات = البيانات، عمود = نوع، إلى = ج ( "النوم"، "هولز")، سبتمبر = "غرفة") البيانات = منفصلة (بيانات = البيانات، عمود = قاعات، إلى = ج ( "هولز"، "مرحاض")، سبتمبر = "مكتب") و## بعد إزالة كانجي المرحاض البيانات $ مرحاض < -str_replace (البيانات $ مرحاض، "وي"، "") FIG ستة ###، قاعات مع شخصيات إزالتها، لأن بعض المعلومات ليست منازل، مثل يعيش: 1 غرفة نوم وغرفة معيشة وغرفة النوم عندما تنقسم، سيتم تعيين الحمام إلى غرفة المعيشة. البيانات $ القاعات < -str_replace (البيانات $ قاعات "وي"، "") ## اتخاذ أي الذين يعيشون البيانات والمعلومات، وهذه البيانات هي عمود منفصل لقاعات newdata < داتا newdata غرفة المعيشة من المنزل ## أي معلومات العمود قاعات مليئة الأصفار البيانات < -0 البيانات < -newdata colSums (البيانات == "") غرف نوم قاعات منطقة مرحاض نحو الطابق تزيين 0020000 TotalPrice الأسعار 00 ## وجدت اثنين من المراحيض أي معلومات لملء إلى 0. البيانات $ مرحاض < -0

## متر مربع سيتم إزالة هنا بعد منطقة البيانات $ المنطقة < -str_replace (البيانات $ المنطقة، "م"، "") ## مشاهدة نحو نوع الجدول (البيانات $ نحو) نحو الشمال والشرق والجنوب الشرقي إلى الشمال الشرقي الى الشرق الى الشمال والجنوب إلى الشمال الغربي إلى الجنوب 51 هو 2.523.506.532.190.167.838 الجنوب الغربي إلى الغرب 2826 وكل ## إزالة المعلومات بين قوسين الطابق البيانات $ الطابق < -str_replace (البيانات $ الطابق، ". * "، "") ## التعبير العادية # عرض فئات الطابق المعلومات الطابق الأرضي السفلي طبقة إجمالي 1 مجموع 2 طبقة 3 طبقة طبقة 4 كو كو طبقة وسطى 5632327،903،661،101،681،301،016 # على التوالي وراء والأسعار TotalPrice مليون يوان / إزالة البيانات $ TotalPrice < -str_replace (البيانات $ TotalPrice "الدولارات"، "") البيانات $ السعر < -str_replace (البيانات $ الأسعار، "يوان / متر"، "") رئيس (البيانات)

## تحويل تنسيق البيانات البيانات $ نوم < -as.factor (البيانات $ غرف نوم) البيانات $ القاعات < -as.factor (البيانات $ قاعات) البيانات $ مرحاض < -as.factor (البيانات مرحاض $) البيانات $ المنطقة < -as.numeric ($ مساحة البيانات) البيانات $ TotalPrice < -as.numeric (البيانات $ TotalPrice) البيانات $ السعر < -as.numeric (البيانات $ السعر) البيانات دولار ل < -as.factor (البيانات $ نحو) البيانات $ تزيين < -as.factor (البيانات $ تزيين) شارع (البيانات)

الانتهاء من تنظيف البيانات الواردة أعلاه.

التحليل الوصفي

الفكرة الرئيسية لهذا القسم هي لاستكشاف أثر المتغير المستقل واحد على المتغير التابع، والعوامل التي تؤثر على الأسعار قبل محاكاة لاستكشاف، أول من المتغيرات وصفية تحليل لتحديد العوامل الأولية في أسعار المساكن. هنا لاستكشاف العوامل المختلفة التي تؤثر على السعر الإجمالي.

غرف نوم واستكشاف العلاقة بين TotalPrice

الجدول (البيانات $ غرف نوم) 123456795.411.225.779.193.102.2051 ونظرا لأن عدد ## لديها عدد من 6،7،9 غرف نوم، حيث أننا أداء هذه البيانات. البيانات < داتا البيانات < داتا البيانات < داتا الجدول (البيانات $ غرف نوم) 123455.411.225.779.193.102 مكتبة (ggplot2) ggplot (البيانات، AES (س = غرف نوم، ذ = TotalPrice)) + geom_boxplot (عمود = "الأحمر") البيانات $ نوم < -as.numeric (البيانات $ غرف نوم) ## حيث عدد غرف النوم 1،2،3 المعينة A، B 4 هو، من 5 إلى C البيانات $ نوم < - "A" البيانات $ نوم < - "A" البيانات $ نوم < - "A" البيانات $ نوم < - "B" البيانات $ نوم < - "C"

عدد غرف النوم المختلفة، TotalPrice مختلفة. ومع الزيادة في عدد من غرف النوم، وارتفاع الأسعار، وذلك تمشيا مع الوعي العام.

قاعات واستكشاف العلاقة بين TotalPrice

 الجدول (البيانات $ قاعات) 01234592.016.741.050.771.810 ## 5 غرفة المعيشة هناك فرد واحد فقط، ونحن هنا ليتم تصريفها البيانات < داتا الجدول (البيانات $ قاعات) 01234592.016.741.050.771.800 ggplot (البيانات، AES (س = قاعات، ذ = TotalPrice)) + geom_boxplot (عمود = "الأحمر")

3 أضعاف عدد من غرفة المعيشة هو أعلى سعر، لغرفة المعيشة عندما الرقم 0، 1، 2 و 3 من السعر الإجمالي هو أقل من عدد من غرفة المعيشة وغرفة المعيشة رقم 4.

المرحاض واستكشاف العلاقة بين TotalPrice

# استكشاف العلاقة بين الحمام والمبلغ الإجمالي الجدول (البيانات $ مرحاض) 0123456792 21424701167426720 # هنا عدد دورات المياه وإزالة 0،67 البيانات < داتا البيانات < داتا البيانات < داتا الجدول (البيانات $ مرحاض) 0123456790 21424701167426000 ggplot (البيانات، AES (س = مرحاض، ذ = TotalPrice)) + geom_boxplot (عمود = "الأحمر")

وأعم عدد من غرف النوم، وعدد من الحمامات والمزيد من أن أكثر عدد من الحمامات، وارتفاع السعر الإجمالي.

واستكشاف منطقة علاقة TotalPrice

ggplot (البيانات، AES (س = المساحة، ص = TotalPrice)) + geom_point (عمود = 'الأحمر')

هذا الامتثال الكامل لمنطقة سكنية أكبر، وارتفاع السعر الإجمالي.

نحو استكشاف العلاقة مع TotalPrice

ggplot (البيانات، AES (س = نحو، ص = TotalPrice)) + geom_boxplot (عمود = "الأحمر")

الأرض واستكشاف العلاقة بين TotalPrice

ggplot (البيانات، AES (س = الكلمة، ص = TotalPrice)) + geom_boxplot (عمود = "الأحمر")

عرض معلومات شخصية فقط ما مجموعه 2، 3 دور، وارتفاع الطابق الأرضي من السعر الإجمالي.

تزيين واستكشاف العلاقة بين TotalPrice

ggplot (البيانات، AES (س = تزيين، ذ = TotalPrice)) + geom_boxplot (عمود = "الأحمر")

الديكور تأثيرات مختلفة على السعر الإجمالي أقل من المعلومات.

نموذج صالح < -lm (TotalPrice ~ غرف نوم + صالات + مرحاض + مساحة + نحو + طابق + تزيين والبيانات = بيانات) ملخص (صالح) اتصل: ل م (الصيغة = TotalPrice ~ غرف نوم + صالات + مرحاض + مساحة + نحو + طابق + تزيين والبيانات = بيانات) بقايا: مين 1Q متوسط 3Q ماكس 2961.59 -1330.80 -103.49 -21.4163.88 معاملات: تقدير الأمراض المنقولة جنسيا. قيمة خطأ ر العلاقات العامة ( > | T |) (اعتراض) -112،763388.3010 -1.2770.201697 Bedrooms2 -43،593416.2533 -2.6820.007359 ** Bedrooms3 -82،656520.7641 -3.9817.04e-05 *** Bedrooms4 -63،309634.9521 -1.8110.070198. Bedrooms579.061854.07631.4620.143842 Halls1 -5.066364.2764 -0.0790.937182 Halls2 -53،890565.4427 -0.8230.410307 Halls3 -303،975079.2280 -3.8370.000127 *** Halls4 -528،5427104.0849 -5.0784.07e-07 *** Toilet2112.956619.11715،9093.87e-09 *** Toilet3543.730438.805614.012 <  2E 16 *** Toilet4735.189455.097713.343 <  2E 16 *** Toilet5338.790684.28514.0205.98e-05 *** منطقة 5.10910.161931،557 <  2E 16 *** نحو الشمال الشرقي إلى 138.908879.38171.7500.080248. باتجاه الجنوب الشرقي 187.189568.53882.7310.006351 ** نحو شيء 176.305565.83842.6780.007453 ** نحو الشرق 210.943573.27442.8790.004022 ** نحو الشمال والجنوب 75.783157.11991.3270.184704 نحو الجنوب 60.194956.96781.0570.290763 نحو الشمال الغربي إلى 75.432671.14151.0600.289091 نحو الجنوب الغربي 169.810675.96262.2350.025467 * نحو الغرب ** 234.081676.55853.0580.002253 الطابق تحت الأرض -812.357863.3277 -12.828 <  2E 16 *** الطابق 12.352514.24660.8670.385991 طبقة أرضية 1 -313.727852.1342 -6.0182.00e-09 *** أرضية 2 طبقات -453،369241.6829 -10.877 <  2E 16 *** مجموعه الكلمة من 3 طبقات -601،703244.3336 -13.572 <  2E 16 *** طبقة الطابق 4 -183.786636.3396 -5.0574.52e-07 *** الدور 5 طوابق -41،418425.7922 -1.6060.108419 وسط الكلمة -1.722313.5961 -0.1270.899204 تزيين بسيط الديكور -63،159122.0584 -2.8630.004224 ** الديكور تزيين -49،327619.8544 -2.4840.013033 * فارغة تزيين -157.029924.3012 -6.4621.22e 10 *** --- Signif رموز :. 0 '***' 0.001 '**' 0.01 '* 0.050.1' '1'. ' الخطأ المعياري المتبقية: 265.5 على 2794 درجة من الحرية R-مربع متعددة: 0.6852، المعدل R-تربيع: 0.6815 F-الإحصائية: 184.3 في 33 و 2794 DF، ص القيمة: <  2.2e-16

نموذج F-اختبار رفض فرضية العدم، ونموذج وصف مهم، Ajusted R-المربعة هو 0.6815، ودرجة نموذج صالح مقبولة.

وانتقدت وسائل الاعلام قوانغدونغ الوطنية لكرة القدم: الناس تفقد وتفقد، بطاقة سيم "تحمل تحديا مزدوجا" لا سوف العمل!

أبل اخترع مادة نفق الكم، تماما الوقت قد حان لمسة؟

التفسير | رؤية الحاسوب هو أبعد من العين البشرية؟

ضربت الفيفا فيروس! ميسي C رونالدو أنهى إصابة الجرح، فإنه من الصعب اللحاق ربع النهائي مباراة الذهاب دوري ابطال اوروبا الأول!

مخرجات نموذج التدريس القائم على حل المشاكل والنتائج: "البيانات الكبيرة والتخطيط العمراني" دورة

خدمات الإنترنت تحفز الابتكار "الشبكة حول دليل" واسطة تشنغدو المقصد الثالث الأكثر شعبية

تزعزعت وانغ الوضع الشم أو الجرافيت المواد، والبورون "الربيع" تبين

الجاف | يعلمك كيفية تحويل الخاصة بك عمق العلمية المهنية دراسة ورقة القراءة (مع وصلات)

الإيطالي كبيرا حادث تصادم سلسلة، قتل شخص واحد، تحطمت أربع سيارات

وكانت هذه لاعبي الدوري الممتاز ثقب أسود؟ هربوا بسبب صعود النخيل "سحرية"!

أي تشويق! A الجنون 5-1 انعكاس طرد 35 عاما من معجزة، ملك التأهيل الأوروبي هو العودة!

11 مزدوج مجد Magic2 السلطة الفلسطينية القائمة، مساعدة تتقدم مجد العلامة التجارية الأولى في العالم للفوز أبل معركة