第一次写,python爬虫图片,操作excel。

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

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

一、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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269250.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript 异常处理

异常处理概述在代码的运行过程中,错误是不可避免的,总的来说,错误发生于两种情况:一是程序内部的逻辑或者语法错误,二是运行环境或者用户输入中不可预知的数据造成的错误。对于前者,就称之为错误&#xff0…

Oracle根据年份分组

select extract(year from 时间字段 ) year from 表名 GROUP BY extract(year from 时间字段 ) 解释:extract(year from 时间字段) 获取相应的年份 得到的结果为数值类型的。year也可以换成month和day获取月和日 GROUP BY extract(year from 时间字段 ) 对获取的年…

Windows VS c++复制文件到网络共享文件夹的实现

远程建立好共享目录本地创建映射盘代码实现,调用 win32 API CopyFile() 或者命令行调用函数 sysytem() 坑: 4. 使用 VS 调试程序的时候会提示无法找到映射盘, 5. CopyFile()函数也会提示没有找…

做有意义的事

...现实的社会,要有现实的眼光... 在现在的生活中不公平的,不平等的事情,很多很多, 有时你是不是会想 为什么那个人什么都不行,确能进个好的公司? 为什么有能力的人, 人家确不用你哪?? ___关系. 不成认不行,人家有关系就是比你强. ___金钱. 没人家有钱,送不起礼,你就只能靠…

oracle instant client配置(MAC OS)

oracle instant client配置(MAC OS) vi ~/.bash_profileexport ORACLE_HOME/opt/oracle/instantclient_11_2/ export DYLD_LIBRARY_PATH$ORACLE_HOME export SQLPATH$ORACLE_HOME export TNS_ADMIN$ORACLE_HOME/network/admin export LANGen_US.UTF8 export NLS_LANGAMERICAN_…

对象序例化

package objectOutputStream.cn;import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.io.ObjectInputStream;/** ObjectInputStream 对象的输入流* 构造方法:* ObjectInput…

Qt ftp 文件上传工具开发

一、需求: 1.简单的配置ftp参数界面 2.tcp 客户端端,接收服务器下发的参数信息 3.用户上传操作界面 在这里插入代码片 二、源码#------------------------------------------------- #------------------------------------------------- # # Project c…

微软2008系列 (Orcas + Longhorn Server+SQL2008)将于2008年2月27日发布

据John ( Windows Server Blog, com.coms news blog),Windows Server 2008, Visual Studio 2008 和 Microsoft SQL Server 2008 将于2008年2月27日 "launch",希望微软不要习惯性的跳票 又据ScottGu 回复:One correction above - the "la…

[Err] ORA-00979: not a GROUP BY expression

not a GROUP BY expression异常产生是因为group by用法的问题。 在使用group by 时,有一个规则需要遵守,即出现在select列表中的字段,如果没有在组函数中,那么必须出现在group by 子句中。(select中的字段不可以单独出…

python进程和线程

python 进程和线程 概念 GIL: 全局解释锁,解决了不同线程同时访问统一资源时,数据保护问题。python 虽然是多线程,但是因为GIL,实际上是是单线程,由CPU轮询,假线程。(一个线程运行一段时间后会释放GIL, 另一…

arm-linux 交叉编译链接动态库使用

alientekubuntu16:~/code/256APP/App/Module256App/test$ cat build.sh arm-linux-gnueabihf-g TestModule.cpp -I ../include -L ../lib/release -L ./ libModuleSdk.so -L ./ libHalAPI.so -stdc11 -I :指定库的头文件目录 -L :指定库文件.so 所在…

2007高考:考生要根据家庭经济条件慎重填报按办学成本收费的高校及专业

2007高考:考生要根据家庭经济条件慎重填报按办学成本收费的高校及专业来源:[url]http://www.accp-teem.com.cn/ArticleView/2007-7-14/Article_View_1181.Htm[/url] 近年来,普通高校招生中中外合作办学的专业越来越多,中外合作办学…

mybatis中大于等于小于等于的写法

第一种写法&#xff08;1&#xff09;&#xff1a;原符号 < < > > & " 替换符号 < < > > &amp; &apos; &quot; 例如&#xff1a;sql如下&#xff1a; create_date…

makefile编写

多源文件 第三方库 testApp:testApp.o UdpSender.o arm-linux-gnueabihf-g -o testApp testApp.o UdpSender.o -L ./test libi2csmbus.so libads1115.so libHalAPI.so libModuleSdk.so -lpthread --stdgnu11 testApp.o: testApp.cpparm-linux-gnueabihf-g -c testApp.cpp -I…

C++习题 虚函数-计算图形面积

C习题 虚函数-计算图形面积 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 122 Solved: 86[Submit][Status][Web Board]Description 编写一个程序&#xff0c;定义抽象基类Shape&#xff0c;由它派生出5个派生类&#xff1a; Circle(圆形)、Square(正方形)、Rectangle(矩形…

〈理解〉OSI七层

第7层<Application应用层>—直接对应用程序提供服务&#xff0c;应用程序可以变化&#xff0c;但要包括电子消息传输第6层<Presentation表示层>—格式化数据&#xff0c;以便为应用程序提供通用接口。这可以包括加密服务、解压第5层<Session会话层>—在两个节…

Ubuntu 开机 Firmware Bug , Bios corrupted

因为Windows 死机&#xff0c;断电后 vmware 虚拟机开机后、进入ubuntu 出现linux启动选项 进入后界面无法打开 一直是命令输入行 解决方法 输入命令&#xff1a;fsck -y /dev/sda1 等待完成修复后再输入 exit

Vboxmanage改动uuid报错的解决的方法

我的环境&#xff1a; Virtualbox 4.3.10 r93012 操作系统&#xff1a;win7 问题&#xff1a;Virtualbox在使用拷贝的虚拟盘时会提示uuid冲突&#xff1a; Because a hard disk with uuid ‘’ already exists. 依照网上的说法&#xff0c;执行VBoxManage改动uuid报错&#xff…

SQL Server连接中的常见错误

SQL Server连接中的常见错误:一."SQL Server 不存在或访问被拒绝"这个是最复杂的,错误发生的原因比较多,需要检查的方面也比较多.一般说来,有以下几种可能性:1,SQL Server名称或IP地址拼写有误2,服务器端网络配置有误3,客户端网络配置有误要解决这个问题,我们一般要遵…