天天看点

python爬虫取图片详解,

接下来会依次准备三个案例(如果要把每一个点都精通的话大约要花费一个月,我说的精通是指自己将代码不用查资料写出来,以下暂未整理):

import requests,threading#多线程处理与控制

from lxml import etree

from bs4 import BeautifulSoup

#获取源码

def get_html(url):

#获取网络地址,但这个地方写死了,怎么办呢,因为我们还没有做多页

headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36'}

#上一步是模拟浏览器信息,固定格式,可记下来

request=requests.get(url=url,headers=headers)#对网址发送一个get请求

response=request.content#获取源码,比test稍微好一点

#print(response)

return response

#接下来是获取外页,即图片自身的源码

def get_img_html(html):

soup=BeautifulSoup(html,'lxml')#解析网页方式,自带html.pparser

all_a=soup.findall('a',class='list-group-item randomlist')#class是关键字所以此处加

for i in all_a:

img_html=get_html(i['href'])#是用来获取超链接这一部分源码

print(img_html)

a=get_html(1)

get_img_html(a)

好了,我们已经可以获取一部分的源码了,这样,我们接下来的工作是开始做多页

def main():

for i in range(1,10):

start_html=get_html(start_url.format(i))#将前十页的页数传递进来,来获取前十页源码

get_img_html(start_html)#来获取图片所在的链接源码

main()

最后是总的源码:

from lxml import etree#解析方式,直接找到里面的内容

get_img(img_html)

#print(img_html)

#获取图片的url:

<a href="mailto:br/"></a>

if name=='main':

未完待续,后期会有改进

      本文转自眉间雪 51CTO博客,原文链接:http://blog.51cto.com/13348847/2044442,如需转载请自行联系原作者