首页 > 编程语言 >python爬虫入门笔记(随便记记,持续更新)

python爬虫入门笔记(随便记记,持续更新)

时间:2022-09-18 21:34:01浏览次数:85  
标签:记记 word get python self 爬虫 url print resp

准备:安装库

pip3 install beautifulsoup4
apt-get install python-lxml
pip3 install parse

 

一、获得 从baidu.com中 能够跳转到的页面(的链接)

import requests
from bs4 import BeautifulSoup

resp=requests.get('https://www.baidu.com') #请求百度首页
print(resp) #打印请求结果的状态码
print(resp.content) #打印请求到的网页源码

bsobj=BeautifulSoup(resp.content,'lxml') #将网页源码构造成BeautifulSoup对象,方便操作
a_list=bsobj.find_all('a') #获取网页中的所有a标签对象
for a in a_list: #遍历
    print(a.get('href')) #打印a标签对象的href属性,即这个对象指向的链接地址

 运行结果

 

 数据保存到txt

import requests
from bs4 import BeautifulSoup

resp=requests.get('https://www.baidu.com') #请求百度首页
print(resp) #打印请求结果的状态码
print(resp.content) #打印请求到的网页源码

bsobj=BeautifulSoup(resp.content,'lxml') #将网页源码构造成BeautifulSoup对象,方便操作
a_list=bsobj.find_all('a') #获取网页中的所有a标签对象
text='' # 创建一个空字符串
for a in a_list:
    href=a.get('href') #获取a标签对象的href属性,即这个对象指向的链接地址
    text+=href+'\n' #加入到字符串中,并换行
with open('url.txt','w') as f: #在当前路径下,以写的方式打开一个名为'url.txt',如果不存在则创建
    f.write(text) #将text里的数据写入到文本中

 运行结果

 

 

 生成了url.txt


二、抓取网络照片

# -*- coding:utf8 -*-
import requests
import re
from urllib import parse
import os

class BaiduImageSpider(object):
    def __init__(self):
        self.url = 'https://image.baidu.com/search/flip?tn=baiduimage&word={}'
        self.headers = {'User-Agent':'Mozilla/4.0'}

    # 获取图片
    def get_image(self,url,word):
        #使用 requests模块得到响应对象
        res= requests.get(url,headers=self.headers)
        # 更改编码格式
        res.encoding="utf-8"
        # 得到html网页
        html=res.text
        print(html)
        #正则解析
        pattern = re.compile('"hoverURL":"(.*?)"',re.S)
        img_link_list = pattern.findall(html)
        #存储图片的url链接 
        print(img_link_list)

        # 创建目录,用于保存图片
        directory = 'C:/Users/Administrator/Desktop/image/{}/'.format(word)
        # 如果目录不存在则创建,此方法常用
        if not os.path.exists(directory):
            os.makedirs(directory)
        
        #添加计数 
        i = 1
        for img_link in img_link_list:
            filename = '{}{}_{}.jpg'.format(directory, word, i)
            self.save_image(img_link,filename)
            i += 1
    #下载图片
    def save_image(self,img_link,filename):
        html = requests.get(url=img_link,headers=self.headers).content
        with open(filename,'wb') as f:
            f.write(html)
        print(filename,'下载成功')

    # 入口函数 
    def run(self):
        word = input("您想要谁的照片?")
        word_parse = parse.quote(word)
        url = self.url.format(word_parse)
        self.get_image(url,word)

if __name__ == '__main__':
    spider = BaiduImageSpider()
    spider.run()

运行结果

 

 























参考:https://blog.csdn.net/aaronjny/article/details/77945329?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-77945329-blog-123905684.pc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-77945329-blog-123905684.pc_relevant_multi_platform_whitelistv3&utm_relevant_index=5
http://c.biancheng.net/python_spider/crawl-photo.html


今天晚上先随便看看,明天继续。

标签:记记,word,get,python,self,爬虫,url,print,resp
From: https://www.cnblogs.com/qwertyyuiop/p/16705789.html

相关文章

  • Python 类
    Class对象类对象支持两种操作:属性引用和实例化。实例对象实例对象有两种有效的属性名称:数据属性和方法。数据属性,不需要声明,像局部变量一样,将在第一次被赋值时产生方......
  • Python面向对象+unittest框架(存档)
    面向对象基本的介绍面向对象是一个编程思想(写代码的套路)编程思想:1.面向过程2.面向对象以上两种都属于写代码的套路(方法),最终目的都是为了将代码书写出来,只不过过......
  • python实训2
    test3-1print("今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?\n")number=int(input("请输入您认为符合条件的数:"))ifnumber%3==2andnumber%5==3andnumb......
  • 边学边做的商品图片爬虫
    需求是给出商品名称Excel列表,然后从网站上把这个商品的图片贴到对应格子里用pandas打开名称列表file_path="G:\\work\\list.xlsx"excel_reader=pd.read_excel(f......
  • 【利用Python进行edf格式的肌电处理的一些过程记录】-2022/09
    (1)获取原肌电数据,生成图片1.使用的库:mne2.肌电数据的格式:edfdefShow_Information(file):raw=read_raw_edf(file,preload=True)info=raw.info......
  • python实验报告(第三周)
    实验3:流程控制语句一、实验目的和要求1、了解Python的程序结构形式和嵌套语句的格式;2、掌握if、if…else、if…elif…else选择语句的使用;3、掌握条件表达式和while、fo......
  • 编译原理:python编译器--运行时机制
    python的运行时机制的核心--python对象机制的设计理解字节码的执行过程用GDB跟踪执行一个简单的示例程序,它只有一行:“a=1”。对应的字节码如下。其中,前两行指令实现......
  • 力扣206(java&python)-反转链表(简单)
    题目:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head=[1,2]输出:[2,1]示例3:输入:head=......
  • python自动发送邮件
    需要什么库?PyEmail这个库能够实现基于SMTP协议自动发送邮件的功能参考:PythonSMTP发送邮件|菜鸟教程(runoob.com)需要哪些准备?一个开启SMTP服务的邮箱这里以163网......
  • 学习python-Day62
    今日学习内容具体项目:D:\pythonProject\django_day60登录界面搭建<divclass="container-fluid"><divclass="row"><divclass="col-md-6col-md-offse......