python简易爬虫编写--图片获取

python简易爬虫编写--图片获取

原创  2018年03月04日 15:28:56
  • 11

项目:抓取淘女郎图片,命名为姓名+城市

知识要点:

1,学会使用selenium的webdriver来模拟浏览器行为

2,熟悉并使用python爬虫的基本开源库

3,掌握正则表达式的基本用法



   找到目标网址

            https://mm.taobao.com/search_tstar_model.htm?

  首先编写一个简单的爬虫脚本用于爬取网页源代码,分析可行性

[python]  view plain  copy
  1. import urllib.request  
  2. from bs4 import BeautifulSoup  
  3. url="https://mm.taobao.com/search_tstar_model.htm?"  
  4. page=urllib.request.urlopen(url)  
  5. html=page.read().decode('gbk')  
  6. soup=BeautifulSoup(html,"html.parser")  
  7. print(soup)  

发现网页采用ajax技术,我们可以使用webdriver来获取动态网页

最终代码:

[python]  view plain  copy
  1. <span style="color:rgb(0,0,0);font-family:Consolas, Inconsolata, Courier, monospace;font-size:12px;background-color:rgb(240,240,240);">import urllib.request</span>  
  2. import re  
  3. from bs4 import BeautifulSoup  
  4. import time  
  5. import urllib.request  
  6. from selenium import webdriver  
  7. import os  
  8. from lxml import etree  
  9.   
  10.   
  11. def gethtml(url):  
  12.     global driver  
  13.     parser="html5lib"  
  14.     browserPath='E:/虚拟浏览器/phantomjs-2.1.1-windows/bin/phantomjs.exe'  
  15.     driver=webdriver.PhantomJS(executable_path=browserPath)  
  16.     driver.get(url)  
  17.     time.sleep(2.5)  
  18.     driver.find_element_by_class_name("page-skip").send_keys(page)  
  19.     driver.find_element_by_class_name("page-btn").click()  
  20.     time.sleep(2)  
  21.     bsOBj=BeautifulSoup(driver.page_source, parser)  
  22.     return bsOBj  
  23.       
  24.       
  25. def getjpg(bsOBj):  
  26.     allpic=[]  
  27.       
  28.     jpgurl=re.findall(r'<div class="img"><img data-ks-lazyload="(.*?)" src=".*?"/></div>',str(bsOBj))  
  29.     jpgurl1=re.findall(r'<div class="img"><img src="(.*?)"/></div>',str(bsOBj))  
  30.     name=re.findall(r'<span class="name">(.*?)</span>',str(bsOBj))  
  31.     site=re.findall(r'<span class="city">(.*?)</span>',str(bsOBj))  
  32.     for i in range(0,len(jpgurl1)):  
  33.         jpgurl.insert(i+1,jpgurl1[i])  
  34.           
  35.       
  36.     #print(jpgurl)  
  37.     cmd="taskkill /F /IM Phantomjs.exe"  
  38.     os.mkdir('E:/taobao/%s/' % page)  
  39.     os.system(cmd)  
  40.     for k in range(0,len(jpgurl)):  
  41.            img='http:'+jpgurl[k]  
  42.            #print(img)  
  43.            picname=name[k]+site[k]  
  44.              
  45.            urllib.request.urlretrieve(img,'E:/taobao/%s/' % page+'%s.jpg' % picname)  
  46. firsturl='https://mm.taobao.com/search_tstar_model.htm?'  
  47.   
  48.   
  49.   
  50.   
  51. for page in range(1,51):  
  52.     bsOBj=gethtml(firsturl)  
  53.     getjpg(bsOBj)  

效果图:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python爬虫实例教程-代码,是一个指导如何使用Python编写爬虫的教程。下面我将用300字中文来回答这个问题。 这个教程的代码示例主要分为以下几个部分。 第一部分是爬虫的准备工作,包括安装Python和相关的第三方库,如requests、BeautifulSoup等。首先需要安装Python,并配置好相关环境变量。然后使用pip安装requests和BeautifulSoup库,这两个库是编写爬虫时常用的工具。 第二部分是使用requests库发送网络请求,获取网页的HTML源代码。首先需要导入requests库,然后使用get方法发送网络请求,传入要爬取的网页地址。之后可以通过response对象的text属性获取网页的HTML源代码。 第三部分是使用BeautifulSoup库解析HTML源代码,提取出需要的数据。首先需要导入BeautifulSoup库,然后将HTML源代码作为参数传入BeautifulSoup类的构造函数。之后可以使用BeautifulSoup对象的find、findAll等方法,根据HTML标签和属性来提取出需要的数据。 第四部分是保存爬取的数据。可以使用Python自带的文件操作函数,如open、write等,将爬取的数据保存到本地文件中。 最后,还可以通过循环、条件判断等控制结构,以及其他的Python编程技巧,对爬虫代码进行更加复杂的处理和优化。 总的来说,Python爬虫实例教程-代码提供了一个从安装环境到写爬虫代码的全过程。通过学习这些代码示例,可以掌握如何使用Python编写爬虫,以及一些常用的爬虫技巧和工具的使用。希望以上回答可以帮助到你。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值