标签:python selenium beautifulsoup requests phantomjs
接下来将记录我一步一步写一个非官方API的过程,因为一些条件的约束,最后的成品可能很粗暴简陋
现在介绍要准备的所有工具:
系统:ubuntu 14.04
语言:python 2.7
需要自行安装的库:flask,BeautifulSoup4,requests,selenium,pinyin,phantomjs-1.9.8
服务器:Sina App Engine
因为成本原因我选择了Sina App Engine,因为免费,但是免费也带来了一定的麻烦就是功能不全,虽然Sina App Engine允许安装python的第三方库,但是对于javascript解释器我很无奈,如果可以我很希望Sina App Engine有nodejs的运行环境,这样就会方便很多。
当然我写的只是简单实现,并没有考虑到效率和优化
下面是几个重要的文档:
#coding:utf-8
import requests
wfile = open('url.html','w')
r = requests.get('http://cnc.dm5.com/search?title=yiquanchaoren').content
wfile.write(r)这是最简单的测试方法,将源码写进一个文件中,然后去文件中找有没有 class="ssnrk" ,如果存在以后就以文件的元素结构分析(以后的每一个页面最好都做一下这步)#coding:UTF-8
import urllib2
from bs4 import BeautifulSoup
from bs4 import UnicodeDammit
import requests
import re
import json
#搜索结果页面URL
url='http://cnc.dm5.com/search?title=guanlangaoshou'
r = requests.get(url).content
soup = BeautifulSoup(r)
#找出所有class="ssnr_yt"元素,然后循环找出下面的a元素,放进找一个list中
ssjg_list=[]
for line in soup.find_all(class_="ssnr_yt"):
ssjg_list.append(line.find('a'))
#循环将所有图片,URL,名称放进字典中
json_ss = {}
j_s=0
for line in ssjg_list:
soup_a = BeautifulSoup(str(line))
json_ss['title'+str(j_s)]=soup_a.a.get('title')#找出a元素title属性的值
json_ss['url'+str(j_s)]=soup_a.a.get('href')#找出a元素hresf属性的值
json_ss['img'+str(j_s)]=soup_a.a.img.get('src')#找出a元素下img元素src属性的值
j_s=j_s+1
#以json形式输出
print json.dumps(json_ss,ensure_ascii=False,indent=2)版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:python selenium beautifulsoup requests phantomjs
原文地址:http://blog.csdn.net/u013055678/article/details/46756909