一個賬號 发表于 2021-3-20 09:16

用python爬取主要城市房价工资比排行榜

import bs4
import requests
import re
import openpyxl


def open_url(url):
    headers = {
      "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
                      "Chrome/89.0.4389.82 Safari/537.36"}
    res = requests.get(url, headers=headers)

    return res


def find_data(res):
    data = []
    soup = bs4.BeautifulSoup(res.text, "html.parser")
    content = soup.find(id="Cnt-Main-Article-QQ")
    target = content.find_all("p", style="TEXT-INDENT: 2em")
    target = iter(target)
    for each in target:
      if each.text.isnumeric():
            data.append([
                re.search(r"\[(.+)\]", next(target).text).group(1),
                re.search(r"\d.*", next(target).text).group(),
                re.search(r"\d.*", next(target).text).group(),
                re.search(r"\d.*", next(target).text).group()])

    return data


def to_excel(data):
    wb = openpyxl.Workbook()
    wb.guess_types = True
    ws = wb.active
    ws.append(["城市", "平均房价", "平均工资", "房价工资比"])
    for each in data:
      ws.append(each)

    wb.save("主要城市房价工资比排行榜.xlsx")


def main():
    url = "https://news.house.qq.com/a/20170702/003985.htm"
    res = open_url(url)

    with open("text.txt", "w", encoding="utf-8") as file:
      file.write(res.text)
      data = find_data(res)
      to_excel(data)


if __name__ == "__main__":
    main()
{:301_999:}

vethenc 发表于 2021-3-20 09:24

感谢分享,一天一平米

hucioz 发表于 2021-3-20 10:51

老哥学习多久了,我也想学习爬虫听说很难就一直没有实践

人来猫不惊 发表于 2021-3-20 09:30

感谢楼主分享,非常好用

coolgem 发表于 2021-3-20 10:05

这个是从一个特定网站上爬吗?

newease 发表于 2021-3-20 10:11

感谢楼主分享,房价速度飞涨

fdjskehs 发表于 2021-3-20 10:22

这个得支持

duzi666 发表于 2021-3-20 09:29

这个好 杀伤力不大,侮辱性极强 {:1_918:}{:1_918:}

cheng911001 发表于 2021-3-20 09:27

哇塞,谢谢楼主欸

Bboxer 发表于 2021-3-20 09:39

干货呀,支持一下

孺子韫 发表于 2021-3-20 09:40

真的谢谢楼主了

alredstone 发表于 2021-3-20 10:01

这个厉害了。看看哪个城市宜居点儿:loveliness:

CCQc 发表于 2021-3-20 10:06

感谢分享,论坛有你更精彩
页: [1] 2 3
查看完整版本: 用python爬取主要城市房价工资比排行榜