python 爬取那种图片~~~~

爬取百度图片
本文介绍了一个简单的Python程序,用于从百度搜索引擎抓取图片资源。通过发送HTTP请求获取网页内容,并使用正则表达式解析出图片链接,最后下载图片到本地指定文件夹。
import re,sys
import requests

def get_page():
    urls = ['http://image.baidu.com/search/flip?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1515928360596_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&ctd=1515928360597%5E00_1288X691&word=%E7%BE%8E%E5%A5%B3','http://image.baidu.com/search/flip?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1515928395065_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&ctd=1515928395065%5E00_1288X691&word=%E7%BE%8E']
    for url in urls:
        # print(url)
        get_img_link(url)

def get_img_link(url):
    r=requests.get(url)
    # print(r.encoding)
    r.encoding='utf-8'
    html_code=r.text
    reg=re.compile(r'"objURL":"(.*?)"')
    imgs=re.findall(reg,html_code)
    # print(imgs)
    for img in imgs:
        print(img)
        down_img(img)

def down_img(url):
    web_data=requests.get(url)
    filename=url.split('/')[-1]
    targetfile='C:/Users/Xuze_Lu/Desktop/picture/{}'.format(filename)
    with open(targetfile,'wb') as f:
        f.write(web_data.content)

if __name__=='__main__':
    get_page()

Python 爬取公众号图片通常涉及到网络请求、HTML解析和文件存储等步骤。以下是基本的流程: 1. **安装所需库**: 首先需要安装 `requests` 库来进行 HTTP 请求,以及如 `beautifulsoup4` 或 `lxml` 进行 HTML 解析。 2. **发送请求**: 使用 `requests.get(url)` 获取公众号文章页面的 HTML 内容。记得检查网站是否允许爬虫访问,并遵守其robots.txt规则。 3. **定位图片元素**: 利用 BeautifulSoup 或其他解析库分析 HTML 结构,找到包含图片链接的元素。这通常是通过查找 `<img>` 标签并获取 `src` 属性来完成的。 ```python import requests from bs4 import BeautifulSoup url = 'https://mp.weixin.qq.com/s/<your_article_url>' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') images = soup.find_all('img', src=True) ``` 4. **保存图片**: 对于每个找到的图片链接,创建一个文件名(可能是基于URL生成),然后下载图片到本地。 ```python import os for img in images: img_url = img['src'] filename = os.path.join(os.getcwd(), os.path.basename(img_url)) with open(filename, 'wb') as f: response = requests.get(img_url, stream=True) for chunk in response.iter_content(1024): if chunk: f.write(chunk) ``` 5. **处理可能出现的问题**: - 有些网站可能会有防盗链机制,需要设置正确的User-Agent和Cookie。 - 分页爬取时,需要处理导航链接,递归或循环遍历。 - 注意版权和法律问题,尊重网站规定,合理使用爬取信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值