python爬虫爬取今日头条_python爬虫—— 抓取今日头条的街拍的妹子图

AJAX 是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

近期在学习获取js动态加载网页的爬虫,决定通过实例加深理解。

1、首先是url的研究(谷歌浏览器的审查功能)

1182030-20170806192712709-346799063.png

http://www.toutiao.com/search_content/?offset=0&format=json&keyword=%E8%A1%97%E6%8B%8D&autoload=true&count=20&cur_tab=1

对应用get方法到url上获取信息。网页对应offset=0 、keyword=%E8%A1%97%E6%8B%8D 是会变的。如果要批量爬取,就得设置循环。

当网页下拉,offset会20、40、60的变化,其实就是每次加载20个内容。

2、

通过requests获得response,进行json解析。

还是一样的网页,切换到Preview,可以看到json的数据内容。title在['date'][0]['title']下,其他类似。

1182030-20170806194344365-1180333186.png

importjsonimportrequests,osdefdownload_pic(file,name,html):

r=requests.get(html)

filename=os.path.join(file,name+'.jpg')

with open(filename,'wb') as f:

f.write(r.content)

url= 'http://www.toutiao.com/search_content/?offset=0&format=json&keyword=%E8%A1%97%E6%8B%8D&autoload=true&count=20&cur_tab=1'res=requests.get(url)

json_data=json.loads(res.text)

data= json_data['data']for i indata:print i['title']

file_path= os.getcwd()+'\image'

printfile_pathfor p in i['image_detail']:print p['url']

name= p['url'].split('/')[-1]

download_pic(file_path,name,p['url'])

在当前目录新建image文件夹,然后爬虫下载图片。

图片名截取url链接的后面部分31e30003d4be75c719ae.jpg

例如http://p3.pstatp.com/large/31e30003d4be75c719ae

结果如下:(仅供学习交流)

循环什么的没写只爬取前20个链接的图片。

1182030-20170806194733334-585967518.png

--------------------------------------------------------------------------------------------------------------

http://jandan.net/ooxx——煎蛋网

同样是妹子图,有些网页不涉及json动态加载的就比较简单了,用beautifulsoup即可

贴上代码匿了

importrequests,os,timefrom bs4 importBeautifulSoupdefdownload_pic(file,name,html):

r=requests.get(html)

filename=os.path.join(file,name+'.jpg')

with open(filename,'wb') as f:

f.write(r.content)defget_url(url):

res=requests.get(url)

soup= BeautifulSoup(res.text,'lxml')

data= soup.select('div.text > p > img')printdatafor i indata:

s= i.attrs['src'][2:]prints

file_path= os.getcwd()+'\imgage1'

printfile_path

name= i.attrs['src'].split('/')[-1]

download_pic(file_path,name,'http://'+s)for i in reversed(range(236)):

url= 'http://jandan.net/ooxx/page-'+str(i)+'#comments'

if requests.get(url).status_code == 200:

get_url(url)

time.sleep(5)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值