鱼C论坛

 找回密码
 立即注册
查看: 2455|回复: 4

[学习笔记] 每日一爬(不定期更新,嘿嘿嘿~)练手系列

[复制链接]
发表于 2018-3-2 15:25:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
爬取2017年房价排行榜数据:

  1. import requests
  2. import bs4
  3. import re
  4. import openpyxl
  5. def open_url(url):
  6.     headers = {'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
  7.     html = requests.get(url,headers = headers)
  8.     #print(html.encoding)   
  9.     encoding = html.encoding
  10.     return html

  11. def get_data(html):
  12.     soup = bs4.BeautifulSoup(html.text,'html.parser')
  13.     #print(soup.find_all('li',class_=re.compile('^clearfix.+')))
  14.     mylist = []
  15.     for each in soup.find_all('li',class_=re.compile('^clearfix.+')):
  16.         mylist.append(each.text.strip().split('\n'))
  17.     new_mylist = []
  18.     for each_list in mylist:
  19.         each_list[0] = re.search(r'2017年(.+)房价',each_list[0]).group(1)
  20.         new_mylist.append(each_list)
  21.     return new_mylist

  22. def save_as_excel(mylist):
  23.     wb = openpyxl.Workbook()
  24.     ws = wb.active

  25.     ws['A1'] = '地区'
  26.     ws['B1'] = '房价'
  27.     ws['C1'] = '同比'

  28.     for each in mylist:
  29.         ws.append(each)

  30.     wb.save('2017全国房价排行.xlsx')

  31. def main():
  32.     url = 'https://www.anjuke.com/fangjia/quanguo2017/'
  33.     html = open_url(url)
  34.     mylist = get_data(html)
  35.     save_as_excel(mylist)

  36. if __name__ == '__main__':
  37.     main()
复制代码
QQ截图20180302152233.png

评分

参与人数 1荣誉 +6 鱼币 +6 贡献 +6 收起 理由
小甲鱼 + 6 + 6 + 6 支持楼主!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-2 16:20:56 | 显示全部楼层
可以可以~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-2 20:13:37 | 显示全部楼层
可不可以不用bs4?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-2 22:58:43 | 显示全部楼层
本帖最后由 snail:) 于 2018-3-2 23:14 编辑


谢谢坛主,继续努力
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-2 23:01:00 | 显示全部楼层
qiuyouzhi 发表于 2018-3-2 20:13
可不可以不用bs4?

可以的,你直接用正则也行,bs4就是重新把网络的框架梳理出来,便于分析
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-14 11:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表