python 爬虫下载ico

12 篇文章 0 订阅
10 篇文章 1 订阅

本教程使用Chrome

最近看到了个网站:https://sc.chinaz.com/tubiao/
上面有1万多个图标
所以点一波鼠标图标(也可以换成别的):

URL:

https://sc.chinaz.com/tag_tubiao/DianNao.html

开F12:
找ul
可以看到class为pngblock pks imgload的ul存放了这堆超链接:
https://sc.chinaz.com/tag_tubiao/DianNao.html

找到超链接,在li标签下的span里:
找a标签
右键 Open in a new tab
URL:

https://sc.chinaz.com/tubiao/201021283110.htm

https://sc.chinaz.com/tubiao/201021283110.htm
点一下每个图片上的ICO:
直接出来了
我直呼好家伙……

开F12,找到ICO,是个class为ico_b的a标签:
找ico

写代码

安装第三方库:

pip install requests
pip install beautifulsoup4

python代码:

import os
import requests
from bs4 import BeautifulSoup
def download_icons_from_chinaz(url, save_path='images', headers=None,
                               encoding='utf-8', parser='html.parser',
                               ul_class_name='pngblock pks imgload',
                               max_download=30):
    if not os.path.isdir(save_path):
        os.mkdir(save_path)
    if headers is None:
        headers = {
            'User-Agent': (
                'Mozilla/5.0 (Windows NT 6.2; WOW64) '
                'AppleWebKit/537.36 (KHTML, like Gecko) '
                'Chrome/30.0.1599.17 Safari/537.36'
            )
        }  # 伪装请求头
    response = requests.get(url, headers=headers)
    response.encoding = encoding
    soup = BeautifulSoup(response.text, parser)  # beautifulsoup解析
    ul = soup.find('ul', attrs={'class': ul_class_name})
    lis = ul.find_all('li')
    urls = []
    for li in lis:
        span = li.find('span')
        a = span.find('a')
        href = a['href']  # 获取每个页面的url
        urls.append(href)
    images = []
    for url in urls:
        url = 'https:' + url  # 由获取到的url是“//”开头的,加上“https:”
        
        response = requests.get(url, headers=headers)  # requests请求
        response.encoding = encoding
        soup = BeautifulSoup(response.text, parser)  # beautifulsoup解析
        div = soup.find('div', attrs={'class': 'down_img'})
        icons = div.find_all('a', attrs={'class': 'ico_b'})
        for a in icons:
            href = a['href']
            images.append(href)
    n = 0
    for im in images:
        print('█', flush=True, end='')  # 显示进度条
        n += 1
        if n > max_download:
            break
        path = os.path.join(save_path, f'{n}.ico')
        response = requests.get(im, headers=headers)
        with open(path, 'wb') as fp:
            fp.write(response.content)
参数意义类型
url类似我的https://sc.chinaz.com/tag_tubiao/DianNao.htmlstr
save_path图片保存的文件夹str
headers自定义请求头dict
encoding网页编码str
parserbeautifulsoup解析器str
ul_class_name存放a标签的ul的classstr
max_download最大下载数量int

注意:连续爬图片可能请求频繁,加个time.sleep就好了


nice!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用Python编写爬虫来实现百度翻译功能。下面是一个示例代码,可以将输入的英文单词或中文翻译为对应的信息并打印出来: ```python import requests url = "https://fanyi.baidu.com/sug" header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36' } def translate_word(word): data = {'kw': word} res = requests.post(url=url, data=data, headers=header) translation = res.json() print(translation) # 示例调用 content = input("请输入需要查询的中文或英文单词:") translate_word(content) ``` 这段代码使用requests库发送POST请求到百度翻译接口,将输入的内容作为请求参数发送,并根据返回的JSON数据打印出翻译结果。 为了将这段代码打包成一个可执行的小程序,可以使用pyinstaller工具。使用以下命令将代码打包成一个独立的可执行文件: ``` pyinstaller -F -i 1.ico 1.8-8.py ``` 其中`-F`选项表示将所有依赖项打包成单个可执行文件,`-i`选项指定生成的可执行文件的图标,`1.ico`是图标文件的路径,`1.8-8.py`是源代码文件的路径。 这样就可以得到一个独立的可执行文件,可以直接运行并进行百度翻译。请注意,为了运行成功,你需要安装requests库。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python爬虫——POST请求百度翻译案例(最后制作成小程序)](https://blog.csdn.net/xiaofengdada/article/details/122386149)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值