python shell 爬蟲 妹子圖片

  • 2020 年 1 月 10 日
  • 筆記

最近開始學Python,人們學一門語言潛移默化的第一個命令往往那個就是 hello world!

這裡也差不多,用python寫了個小爬蟲,爬妹子圖的"照片".感覺效率好慢,應該是程式碼的問題,

在此獻醜了!!!

需要安裝兩個好用的庫,分別是 requests 和 Beautifulsoup,安裝十分簡單回頭補上!

嗯~就這樣

程式碼在 Python 2.7.8  以及 Python 3.4.1 下都可以測試通過!

#coding:utf-8  import requests  from bs4 import BeautifulSoup  import re  DownPath = "/jiaoben/python/meizitu/pic/"  import urllib  head = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}  TimeOut = 5  PhotoName = 0  c = '.jpeg'  PWD="/jiaoben/python/meizitu/pic/"  for x in range(1,4):    site = "http://www.meizitu.com/a/qingchun_3_%d.html" %x    Page = requests.session().get(site,headers=head,timeout=TimeOut)    Coding =  (Page.encoding)    Content = Page.content#.decode(Coding).encode('utf-8')    ContentSoup = BeautifulSoup(Content)    jpg = ContentSoup.find_all('img',{'class':'scrollLoading'})    for photo in jpg:      PhotoAdd = photo.get('data-original')      PhotoName +=1      Name =  (str(PhotoName)+c)      r = requests.get(PhotoAdd,stream=True)      with open(PWD+Name, 'wb') as fd:          for chunk in r.iter_content():                  fd.write(chunk)  print ("You have download %d photos" %PhotoName)

#在放一個以前用shell寫的下載煎蛋妹子圖片的程式碼吧!

頁碼自己嵌套一個for 就可以下載多點妹子圖了~懶得弄了!

#!/bin/bash  DATE=`date +%y%m%d-%H:%M`  PITCURE_ADDRESS="/jiaoben/python/meizitu/pic"  BROWSER="Mozil5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0"  read -p "down number: " page  WEBSITE="http://jandan.net/ooxx/page-"${page}""  SOURCE_WEBSITE="http://jandan.net/ooxx"    #read -p "down number: " page    #photo=`curl -A $"BROWSER" -m 10 -e $SOURCE_WEBSITE  $WEBSITE |awk -F"://" '/.jpg/  {print $3}' |awk '{FS="""}{print $1}' `  #curl -A "Mozil5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0" -m 10 -e "http://jandan.net/ooxx"  "http://jandan.net/ooxx/page-1210" |awk -F"://" '/.jpg/  {print $3}'|awk -F""" '{print $1}'  photo=`curl -A $"BROWSER" -m 10 -e $SOURCE_WEBSITE  $WEBSITE |awk -F"://" '/.jpg/  {print $3}'|awk -F""" '{print $1}'`    number=`$photo|wc -l`  for i in $photo  do  wget -q  -T 10 -P $PITCURE_ADDRESS  $i >/dev/null  name='echo ${i##*/}'  number=$((number+1))    /bin/mv ${PITCURE_ADDRESS}${i##*/} ${PITCURE_ADDRESS}$page-$number.jpg  done