HomeHarvest 项目教程
1. 项目的目录结构及介绍
HomeHarvest 项目的目录结构如下:
HomeHarvest/
├── README.md
├── setup.py
├── homeharvest/
│ ├── __init__.py
│ ├── scraper.py
│ ├── config.py
│ └── main.py
└── tests/
├── __init__.py
└── test_scraper.py
目录结构介绍
README.md
: 项目说明文件,包含项目的基本信息和使用说明。setup.py
: 项目的安装脚本,用于安装项目所需的依赖。homeharvest/
: 项目的主要代码目录。__init__.py
: 初始化文件,使homeharvest
成为一个 Python 包。scraper.py
: 包含网页抓取逻辑的模块。config.py
: 配置文件,包含项目的配置信息。main.py
: 项目的启动文件。
tests/
: 测试代码目录。__init__.py
: 初始化文件,使tests
成为一个 Python 包。test_scraper.py
: 针对scraper.py
的测试文件。
2. 项目的启动文件介绍
项目的启动文件是 homeharvest/main.py
。该文件包含了项目的主要入口点,负责解析命令行参数并调用相应的抓取逻辑。
主要功能
- 解析命令行参数。
- 根据参数调用
scraper.py
中的抓取逻辑。 - 将抓取结果保存到指定的文件格式(如 Excel 或 CSV)。
示例代码
import argparse
from homeharvest import scraper
def main():
parser = argparse.ArgumentParser(description="HomeHarvest Real Estate Scraper")
parser.add_argument("location", type=str, help="Location to scrape")
parser.add_argument("-s", "--site_name", nargs="+", default=["zillow", "realtor.com", "redfin"], help="Sites to scrape")
parser.add_argument("-l", "--listing_type", type=str, default="for_sale", help="Listing type (for_sale, for_rent, sold)")
parser.add_argument("-o", "--output", type=str, default="excel", help="Output format (excel, csv)")
parser.add_argument("-f", "--filename", type=str, default="HomeHarvest", help="Output filename")
args = parser.parse_args()
properties = scraper.scrape_property(
site_name=args.site_name,
location=args.location,
listing_type=args.listing_type
)
if args.output == "excel":
properties.to_excel(f"{args.filename}.xlsx", index=False)
elif args.output == "csv":
properties.to_csv(f"{args.filename}.csv", index=False)
if __name__ == "__main__":
main()
3. 项目的配置文件介绍
项目的配置文件是 homeharvest/config.py
。该文件包含了项目的配置信息,如默认的抓取站点、默认的列表类型等。
主要配置项
DEFAULT_SITES
: 默认的抓取站点列表。DEFAULT_LISTING_TYPE
: 默认的列表类型。DEFAULT_OUTPUT_FORMAT
: 默认的输出格式。
示例代码
DEFAULT_SITES = ["zillow", "realtor.com", "redfin"]
DEFAULT_LISTING_TYPE = "for_sale"
DEFAULT_OUTPUT_FORMAT = "excel"
通过以上介绍,您可以更好地理解和使用 HomeHarvest 项目。希望本教程对您有所帮助!