python之爬虫的入门05------实战:爬取贝壳网(用re匹配需要的数据)

本文介绍使用Python进行网络爬虫的实战案例,通过正则表达式(re)解析贝壳网上的数据,详细讲解如何抓取并处理所需信息。
摘要由CSDN通过智能技术生成
# 第二页:https://hz.zu.ke.com/zufang/pg2
# 第一页:https://hz.zu.ke.com/zufang/pg1


import urllib.request
import random
import re

def user_ip():
    '''使用IP代理'''

    iplist = ['117.191.11.109:8542','186.46.192.110:8177', '39.137.2.214:8882']  # 代理IP地址
    proxy_support = urllib.request.ProxyHandler({'http': random.choice(iplist)})  # 创建一个请求对象,处理http请求,参数是一个字典{'类型':'代理IP:端口号'}
    opener = urllib.request.build_opener(proxy_support)  # 订制创建一个opener
    urllib.request.install_opener(opener)  # 替代默认opener

def create_request(url,headers):
    '''生成请求request'''
    req = urllib.request.Request(url=url, headers=headers)
    return req

def get_response(req):
    '''得到response回应'''
    response = urllib.request.urlopen(req)
    return response

def get_html(response):
    '''得到HTML页面'''
    html = response.read().decode('utf-8')
    return html

def get_home_img(html):
    # 1.图片地址 #list2存储了所有的图片地址
    list1 = re.findall(r'''data-src\=\"(.*?)\.jpg\"''', html)
    home_img = []
    for i in list1:
        home_img.append(i + '.jpg')
    # print(home_img)
    return home_img

def get_home_name(html):
    home_name = re.findall(r'''<p class="content__list--item--title twoline">
                  <a target="_blank" href=".*">
                    (.*?)                  </a>
                </p>''', html)
    # print(home_name)
    # print(len(home_name))
    return home_name

def chu_kongji(list4):
    list7 = []
    for i in list4:
        list6 = []
        for j in i:
            if j == '':
                continue
            list6.append(j)
        list7.append(list6)
    return list7

def get_home_details(html):
    # 3.详细信息
    home_details = re.findall(r'''<p class="content__list--item--des">
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值