【Python爬蟲】正則爬取趕集網

Blank_Heart發表於2020-12-24
import requests
import time
import re

url = 'http://suqian.ganji.com/zufang/pn1/'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.66'
}
resp = requests.get(url,headers = headers)
text = resp.text
houses = re.findall(r"""
    # re.findall()
    # 在字串中找到正規表示式所匹配的所有子串,並返回一個列表,如果沒有找到匹配的,則返回空列表。
    # 點(.):匹配任意的字元(除了'\n'):
    # +:匹配1個或者多個字元:
    # ?:匹配前一個字元0個或者1個:
    # .+? 非貪婪匹配
    <div.+?ershoufang-list.+?<a.+?js-title.+?>(.+?)</a>.+?  #房型
    .+?<dd.+?dd-item.+?size.+?<span>(.+?)</span>    #戶型
    .+?<span>(.+?)</span>   #面積
    .+?<span.+?last.+?>(.+?)</span> #裝修
    .+?<div.+?price.+?<span.+?>(.+?)</span>
""",text,re.VERBOSE|re.DOTALL)
for house in houses:
    print(house)
    time.sleep(0.3)

相關文章