第一次写博客,其实老早就注册博客园了,有写博客的想法,就是没有行动,总是学了忘,忘了丢,最后啥都没有,电脑里零零散散,东找找,西看看,今天认识到写博客的重要性。

  最近闲着看了潭州教育的在线直播课程,颇受老师讲课实用有感。只作为自己笔记学习,我们都知道学习一门编程都是先照抄,在创作。这里完全按照老师讲解,照抄作为学习。

一、Python抓取豆瓣妹子图。

  工具:python3.6.0;bs4.6.0;xlwt(1.2.0)需要版本对应,之前就安装了bs4但是运行的时候提示版本不对应。可以在线升级:pip install update buautifulsoup4

  1.pip list,可以查看本地安装。

  

  1.爬取豆瓣妹子图,知道其地址,url = 'http://www.dbmeinv.com/?pager_offset=1'。

  2.查看网页源代码,F12,network,随便找个左边捕捉的网页信息,找到User-agent,目的主要是为了模仿浏览器登录,防止反爬虫。

找到element元素。我们要的是img标签,中的图片信息,src连接下载地址。

按照老师写所有代码

 1 import urllib
 2 import urllib.request
 3 from bs4 import BeautifulSoup
 4 url = 'http://www.dbmeinv.com/?pager_offset=1'
 5 x=0
 6 #获取源码
 7 #自定义函数
 8 #User-Agent模拟浏览器进行访问,反爬虫
 9 def crawl(url):
10     headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3088.3 Safari/537.36'}
11     req=urllib.request.Request(url,headers=headers)#创建对象
12     page=urllib.request.urlopen(req,timeout=20)#设置超时
13     contents=page.read()#获取源码
14     #print (contents.decode())
15     soup = BeautifulSoup(contents,'html.parser')#html.parser主要是解析网页的一种形式。
16     my_girl=soup.find_all('img')#找到所有img标签
17     # 5.获取图片
18     for girl in my_girl:#遍历
19         link=girl.get('src')#获取src
20         print(link)
21         global x#全局变量
22         # 6.下载 urlretrieve
23         urllib.request.urlretrieve(link,'image\%s.jpg'%x)#下载,urlretrieve(需要下载的,路径)
24         x+=1
25         print('正在下载第%s张'%x)
26 #7.多页
27 for page in range(1,10):#range本身自动生成整数序列,爬取多页图片。
28     #page+=1
29     url='http://www.dbmeinv.com/?pager_offset={}'.format(page)#
30     #url = 'http://www.dbmeinv.com/?pager_offset=%d' % page
31     crawl(url)
32
33 print('图片下载完毕')

最终运行结果, 图片保存在image文件夹下。

二、抓取大众点评,导入excel。赵本宣言老师源码。

import requests
from bs4 import BeautifulSoup
import xlwt
def get_content(url,headers=None,proxy=None):html=requests.get(url,headers=headers).contentreturn htmldef get_url(html):soup = BeautifulSoup(html,'html.parser')shop_url_list=soup.find_all('div',class_='tit')#class在Python是关键字,# 列表推导式return [i.find('a')['href'] for i in shop_url_list]#商品的详细信息,名字,评论,人均
def get_detail_content(html):soup=BeautifulSoup(html,'html.parser')price=soup.find('span',id='avgPriceTitle').textevaluation=soup.find('span',id='comment_score').find_all('span',class_='item')#find_all是有多个,这里三个#for i in evaluation:#   print(i.text)the_star=soup.find('div',class_='brief-info').find('span')['title']title=soup.find('div',class_='breadcrumb').find('span').textcomments=soup.find('span',id='reviewCount').textaddress=soup.find('span',itemprop='street-address').textprint(u'店名:'+title)for i in evaluation:print(i.text)print(price)print(u'评论数量:'+comments)print(u'地址:'+address.strip())print(u'评价星级:'+the_star)print('================')return (title,evaluation[0].text,evaluation[1].text,evaluation[2].text,price,comments,address,the_star)if __name__=='__main__':items=[]start_url='https://www.dianping.com/search/category/344/10/'base_url='https://www.dianping.com'headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3088.3 Safari/537.36','Cookie':'_hc.v=461407bd-5a08-f3fa-742e-681a434748bf.1496365678; __utma=1.1522471392.1496365678.1496365678.1496365678.1; __utmc=1; __utmz=1.1496365678.1.1.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; PHOENIX_ID=0a0102b7-15c6659b548-25fc89; s_ViewType=10; JSESSIONID=E815A43E028078AFA73AF08D9C9E4A15; aburl=1; cy=344; cye=changsha; __mta=147134984.1496365814252.1496383356849.1496383925586.4'}start_html=get_content(start_url)#一页# url_list=get_url(start_html)#多页url_list = [base_url + url for url in get_url(start_html)]for i in url_list:detail_html=get_content(i,headers=headers)item=get_detail_content(detail_html)items.append(item)#写excel,txt差别,Excel:xlwgnewTable='DZDP.xls'wb=xlwt.Workbook(encoding='utf-8')ws=wb.add_sheet('test1')headData=['商户名字','口味评分','环境评分','服务评分','人均价格','评论数量','地址','商户评价']for colnum in range(0,8):ws.write(0,colnum,headData[colnum],xlwt.easyxf('font:bold on'))index=1lens=len(items)for j in range(0,lens):for i in range(0,8):ws.write(index,i,items[j][i])index +=1wb.save(newTable)

很喜欢锁女神老师,忘老师的用心讲解,收获很多,虽然有些地方还不是很懂,但通过不断的学习,养成写博客的习惯,相信会快速提升。

  

转载于:https://www.cnblogs.com/lry1/p/6941250.html

第一次写,python爬虫图片,操作excel。相关推荐

  1. python写爬虫运行不了_python 打包运行不了零基础写python爬虫之爬虫的定义及URL构成...

    一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛. 网络蜘蛛是通过网页的链接地址来寻找网页的. 从网站某一 ...

  2. python网络爬虫教程-教你从零开始学会写 Python 爬虫

    原标题:教你从零开始学会写 Python 爬虫 写爬虫总是非常吸引IT学习者,毕竟光听起来就很酷炫极客,我也知道很多人学完基础知识之后,第一个项目开发就是自己写一个爬虫玩玩. 其实懂了之后,写个爬虫脚 ...

  3. Python爬虫 图片爬取简陋版

    Python爬虫 图片爬取简陋版 因为在自学Python 学了几天打算写一个爬虫,后来发现学的python的基础还要学库 于是花了好长时间查资料 终于写出来一个简陋版本的 东拼西凑还真让我搞成了 下面 ...

  4. Excel VBA 笔记 第一次写代码-For循环 (Excel基础)

    第一次写代码-For循环 (Excel基础)     1.Excel 宏的使用     2.手工写VBA代码     3.使用for 1.Excel 宏的使用     准备工作:调出开发工具:文件-& ...

  5. python 小说爬虫_从零开始写Python爬虫 --- 1.7 爬虫实践: 排行榜小说批量下载

    从零开始写Python爬虫 --- 1.7 爬虫实践: 排行榜小说批量下载Ehco 5 个月前 本来只是准备做一个爬起点小说名字的爬虫,后来想了一下,为啥不顺便把小说的内容也爬下来呢?于是我就写了这个 ...

  6. python爬虫代理的使用_从零开始写Python爬虫 --- 2.4 爬虫实践:代理的爬取和验证...

    爬网站的时候,由于各种原因,ip被锁了,这个时候我们就需要通过代理来突破封锁.网上有很多代理网站,付费和免费的都有,这次我们就来写一个scrapy爬虫,爬一些免费的代理下来用. 目标分析: 本次爬取了 ...

  7. Python读取和操作Excel(.xlsx)文件

    Python读取和操作Excel(.xlsx)文件 使用openpyxl库来控制excel文件(即.xlsx为后缀的文件).这里介绍一下excel数据的结构. 打开excel文件后生成一个workbo ...

  8. python 模拟浏览器selenium_从零开始写Python爬虫 --- 3.1 Selenium模拟浏览器

    本来说好要写Mechanize模拟浏览器的,结果一看居然只支持2.x版本的Python,而且已经长久没有更新维护了,本着学新不学旧的原则,我决定跳过他,直接开学Selenium(其实就是我懒,逃 Se ...

  9. 从零开始写Python爬虫 --- 1.5 爬虫实践: 获取百度贴吧内容

    从零开始写Python爬虫 --- 1.5 爬虫实践: 获取百度贴吧内容 Ehco 5 个月前 经过前期大量的学习与准备,我们重要要开始写第一个真正意义上的爬虫了.本次我们要爬取的网站是:百度贴吧,一 ...

  10. Python中xlrd操作excel单元格

    学习目标 Python中xlrd操作excel单元格 学习内容 1.获取工作表 sheet=data.sheet_by_index(0) 2.返回单元格对象 sheet.cell(1,2) #返回第二 ...

最新文章

  1. WSUS控制台由于程序异常崩溃
  2. 【MM配置】Pricing 采购定价 1
  3. 无法读取配置节aspnetcore_传奇列表为什么会读取失败?
  4. 某信道的波特率为1000Baud,若令其数据传输速率达到4kb/s,则一个信号码元所取的有效离散值个数为( )
  5. 使用微软Outlook的收件Rule规则自动删除垃圾邮件
  6. activiti 为什么需要采用乐观锁?
  7. 如何关闭window10自动更新
  8. rust vs java_为什么我从Java切换到Rust
  9. android上拉刷新下拉加载
  10. iptables详解和snat dnat
  11. IAR模板--怎样在IARproject中创建和使用模板
  12. HTML5系列代码:信纸效果
  13. javaweb表格制作举例
  14. 山东省深化农村公路管理养护体制改革实施方案
  15. 【Python Web自动化】03_PO模型
  16. js 取小数点后两位的几种方法 取整
  17. 蓝牙基础(一):版本特点与分类
  18. SpringBoot发生404跳转404页面
  19. 基于STM32的HAL库的倒立摆控制(一)PWM输出
  20. 西门子博图指令(定时器操作三)

热门文章

  1. win8, VS2013 .NET 4.5在哪找svcutil.exe?
  2. SetProcessWorkingSetSize 函数的骗局
  3. mac 卸载编辑器卸不干净
  4. POJ 3608 Bridge Across Islands 《挑战程序设计竞赛》
  5. vim中跳到第一行和最后一行
  6. HTTP协议(3)浏览器的使用之查看源码
  7. Python个人项目--豆瓣图书个性化推荐
  8. WWDC2017 笔记 - Cocoa Touch 中的新特性
  9. PHP自动测试框架Top 10
  10. C#多线程学习(六) 互斥对象