一个简单的表情包爬取程序

一个简单的表情包爬取程序

图源网站斗图吧

工具requests库

正则表达式切割

import requests
from lxml import etree
from urllib import request
import os
import re

def main():
    for x in range(1,101):
        url = "http://www.doutula.com/photo/list/?page=%d" %x
        parse_page(url)

def parse_page(url):
    headers = {
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5478.400 QQBrowser/10.1.1550.400"

    }
    response = requests.get(url,headers = headers)
    text = response.text
    what = etree.HTML(text)
    imgs = what.xpath("//body//img")
    for img in imgs:
        img_url = img.get("data-original")
        alt = img.get("alt")
        alt = re.sub(r'[\??.,。!!]','',alt)
        suffixs = os.path.splitext(img_url)[1]
        suffix = suffixs.split('!')[0]
        filename = alt +suffix
        request.urlretrieve(img_url,"image/"+filename)



if __name__ == '__main__':
    main()

这里提供一种基于 Python 和 Scrapy 框架的全国房价爬取程序的思路和实现方法: 1. 首先确定爬取的目标网站和需要爬取的数据。可以选择一些房产中介网站,比如链家、安居客、贝壳等,针对不同的网站需要分析其网页结构和数据获取方式。 2. 安装 Scrapy 框架,创建一个新的 Scrapy 项目。在命令行中执行以下命令: ``` scrapy startproject house_price ``` 其中 "house_price" 是项目的名称,可以根据实际情况进行更改。 3. 创建一个 Spider(爬虫)类,继承自 Scrapy 的 Spider 类。在 Spider 类中,定义需要爬取的网站 URL 和需要获取的数据字段。 以下是一个简单的 Spider 类示例: ``` import scrapy class HousePriceSpider(scrapy.Spider): name = "house_price" allowed_domains = ["example.com"] start_urls = [ "http://www.example.com/house_price", ] def parse(self, response): # 解析网页内容,提取需要的数据并返回 pass ``` 4. 在 parse 方法中,使用 Scrapy 的 Selector 对象解析网页内容,提取需要的数据。根据网页结构,可以使用 XPath 或 CSS Selector 表达式进行定位。 以下是一个简单的解析示例: ``` def parse(self, response): # 找到所有房源信息块 houses = response.xpath('//div[@class="house"]') for house in houses: # 获取房源信息字段 title = house.xpath('h1/text()').extract_first() price = house.xpath('div[@class="price"]/text()').extract_first() area = house.xpath('div[@class="area"]/text()').extract_first() # 将数据保存到 Item 对象中 item = HousePriceItem() item['title'] = title item['price'] = price item['area'] = area # 返回 Item 对象 yield item ``` 5. 在 Item 类中定义需要获取的数据字段和数据类型。可以使用 Scrapy 提供的 Field 类来定义字段,支持多种数据类型,比如字符串、数字、日期等。 以下是一个简单的 Item 类示例: ``` import scrapy class HousePriceItem(scrapy.Item): title = scrapy.Field() price = scrapy.Field() area = scrapy.Field() ``` 6. 在 Scrapy 项目的配置文件 settings.py 中,设置一些爬取的参数,比如爬取延时、User-Agent 等。 以下是一个简单的 settings.py 配置示例: ``` BOT_NAME = 'house_price' SPIDER_MODULES = ['house_price.spiders'] NEWSPIDER_MODULE = 'house_price.spiders' # 爬取延时,单位秒 DOWNLOAD_DELAY = 3 # User-Agent USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36' ``` 7. 运行爬虫程序,启动爬虫并开始爬取数据。在命令行中执行以下命令: ``` scrapy crawl house_price ``` 其中 "house_price" 是 Spider 类的名称,需要与 Spider 类中的 name 属性对应。 8. 爬取完成后,可以将数据保存到本地文件或数据库中进行分析和处理。可以使用 Scrapy 提供的 Exporters 来方便地导出数据。 以下是一个简单的数据导出示例: ``` scrapy crawl house_price -o house_price.csv -t csv ``` 其中 "-o" 参数指定导出文件的路径和名称,"-t" 参数指定导出文件的格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值