對鏈家北京二手房的部分資訊提取 正則匹配

2021-09-25 07:20:51 字數 1744 閱讀 3438

import csv

from urllib import request

import re

from time import sleep

def request_from(url, page):

# 首先要拼接url

page_url = url + str(page) + '/'

# 請求頭

headers =

# 二手房主題資訊

pat_fang = re.compile(r'(.*?)<', re.s)

item['fang'] = pat_fang.findall(room)[0]

# 二手房位址

pat_address = re.compile(r'(.*?)', re.s)

item['address'] = pat_address.findall(room)[0]

# 二手房簡介

pat_content = re.compile(r'.* (.*?)

', re.s)

item['content'] = pat_content.findall(room)[0]

# **

pat_price = re.compile(r'(.*?)<', re.s)

item['price'] = pat_price.findall(room)[0]

# 樓層

pat_floor = re.compile(r'(\s+).*(.*?)<', re.s)

item['position'] = pat_position.findall(room)[0]

# 樓層+位置

# pat_floor = re.compile(r'(.*?)(.*?)<', re.s)

# item['floor'] = pat_floor.findall(room)[0][0] + pat_floor.findall(room)[0][1]

# print(item)

yield item

def write_to_csv(data):

# 開啟csv檔案

csvfile = open('./lianjia.csv', 'a+', encoding='utf-8', newline='') # 以追加的方式開啟csv檔案

# 根據開啟的csv檔案建立寫物件

writer = csv.writer(csvfile)

# 寫表頭

writer.writerow(['fang', 'content', 'address', 'price', 'floor', 'position'])

# 將data中的儲存的內容寫入二維表中

for item in data:

# csv表中的每一行就是程式語言中的乙個一維列表,

row =

# 將row列表寫入csv中

writer.writerow(row)

if __name__ == '__main__':

url = ''

# 請求網頁

content_list = request_data(url=url, start=1, end=20)

# 解析

list = analysis_data(content_list)

# 儲存

write_to_csv(list)

Python爬取鏈家二手房資訊

2 資料庫表結構 使用物件導向的方式,搭建專案框架 import requests from bs4 import beautifulsoup import pymysql class lianjiaspider mydb pymysql.connect localhost root 123456 ...

python爬蟲爬取鏈家二手房資訊

問題一 鏈家 也有反爬蟲策略和robots限制,robots限制忽略 不然沒法爬 另外頻繁爬取會直接導致被ban,需要隔天才會解禁止。防止被ban的方法有多種,1.禁止cookie 2.設定header 3.加大爬取間隔 4.使用 我只用了前三種方法,具體可以在settings.py 和middle...

python爬取鏈家網二手房資訊

朋友請我幫忙做的期末作業,我自己不是愛說話,直接分享 可以直接執行的,期中用的是 python 3.6版本,導包的時候直接在cmd裡面用的pip install 包名,其中有的包安裝失敗,提示pip需要公升級,可以看一下這個鏈結 下面是 在這裡插入 片 usr bin env python3 cod...