发布时间:2022-11-28 文章分类:编程知识 投稿人:李佳 字号: 默认 | | 超大 打印

目标:爬取xx二手房楼市信息自己分析形势

目的:记录重温爬虫历程

1、引用包requests,random,time,pandas,bs4

2、查询:bs4使用方法,re。comple,以及他山之石。

3、思路:简单应用,直接写死不用def,class,

  -url 列表,初始列表后,append添加翻页url

  -headers,不加也可,网页写死的。

  -网页内数据写死的,爬网页即可,适合新手。

  -顺序:url-->-->空字典-->headers-->for-->bs4-->append添加字典列表-->pd.to-csv time.sleep(random.randint())

源代码:

import requests,random,time
import re
import pandas as pd
from bs4 import BeautifulSoup
shuju = {
"房子":[],
'房型':[],
'地址':[],
'面积':[],
'售价':[],
'单价':[],
'中介':[],
'更新时间':[]
}

url = ["https://xxxx"]
urllist= ['https://xxxx'+str(x) for x in range(2,17)]
headers = {
'User-Agent': 'xxxx.56'
}
for i in urllist:
  url.append(i)
gg=0

for xx in url:
  res = requests.get(url=xx,headers=headers)
  respone=BeautifulSoup(res.text,'html.parser')
  all_li = respone.find('ul',class_='item-list').find_all('li')
  for i in all_li:
    name1 = i.find('p',class_='title').find('a',target="_blank").text
    faxing = i.find('p',class_='detail').find('span').text
    address = i.find('span',class_='maps').text
    mianji = i.find('span',class_='area-detail_big').text
    money = i.find('em',class_='prices').text
    danjia = i.find('div',class_='content fl').find('div',class_='about-price').find('p',class_='tag').text
    zj = i.find('p',class_='agents').find('a').text
    uptime = i.find('p',class_='agents').find('span').text
    shuju["房子"].append(name1)
    shuju["房型"].append(faxing)
    shuju["地址"].append(address)
    shuju["面积"].append(mianji)
    shuju["售价"].append(money)
    shuju["单价"].append(danjia)
    shuju["中介"].append(zj)
    shuju["更新时间"].append(uptime)
    gg+=1
    print(danjia)
    time.sleep(random.randint(0,1))
    print('第{}条ok!'.format(gg))

df = pd.DataFrame(shuju)
df.to_csv('xxxx楼市二手房数据.csv',encoding='utf-8-sig')
print('爬完了')

以上注意缩进,怕忘备查。看得懂代码的都应知道了,我就不注释了。