Python 爬虫 beautifulsoup4 基础

pycharm、python环境搭建好后

装载html文档,使用beautifulsoup的第一步是把html文档装载到beautifulsoup中,使其形成一个beautifulsoup对象。

import requests
from bs4 import BeautifulSoup
url = "xxxx"
r = requests.get(url)
htmls = r.text
#print(htmls)
soup = BeautifulSoup(htmls, 'html.parser')

初始化BeautifulSoup类时,需要加入两个参数,第一个参数即是我们爬到html源码,第二个参数是html解析器,常用的有三个解析器,分别是”html.parser”,”lxml”,”html5lib”,官网推荐用lxml,因为效率高,当然需要pip install lxml一下。

例子

html对象:

uls='''
<h3>Header3 (Start here)</h3>
<ul>
    <li>List items</li>
    <li>Etc...</li>
</ul>
<h3>Header 3</h3>
<ul>
    <li>List items</li>
    <ul>
        <li>Nested list items</li>
        <li>Nested list items</li></ul>
    <li>List items</li>
</ul>
<h2>Header 2 (end here)</h2>

lis = []
    for ul in uls:
        for li in ul.findAll('li'):
            if li.find('ul'):
                break
            lis.append(li)

    for li in lis:
        print(li.text)
        #print(li.text.encode("utf-8"))

https://www.jb51.net/article/156907.htm
https://blog.csdn.net/huxiny/article/details/79679066

百度图片爬虫:

https://blog.csdn.net/qq_40774175/article/details/81273198

Python代码报错 FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。

检查路劲是否有中文,有则换成英文或数字

https://zhidao.baidu.com/question/1309336445243832299.html


Python 读取和输出到 txt 文件

with open("test.txt", "r",encoding='UTF-8') as f:  # 打开文件
    data = f.read()  # 读取文件
    print(data)

读入这种文件时:
test.txt

樱之宫莓香
轰焦冻
鬼灯
和泉守兼定
str=[]
with open("test.txt", "r",encoding='UTF-8') as f:  # 打开文件
    data = f.readlines()
    for line in data:
        line = line.strip('\n')  # 去掉列表中每一个元素的换行符
        str.append(line)
    print(str)

参考:
https://blog.csdn.net/zhang__shuang_/article/details/82527314

Python读取文件时出现UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position xx: 解决方案:

https://blog.csdn.net/zhang__shuang_/article/details/82527314


①:Python 正则表达式 re 中出现'str' object has no attribute 'findall'

②:出现TypeError: 'list' object is not callable异常的情况与解决方法

③:利用python将中文名转换为英文名

python递归遍历目录和子目录下的所有文件,并将文件目录存入列表


import os

def get_file(root_path,all_files=[]):
    '''
    递归函数,遍历该文档目录和子目录下的所有文件,获取其path
    '''
    files = os.listdir(root_path)
    for file in files:
        if not os.path.isdir(root_path + '/' + file):   # not a dir
            all_files.append(root_path + '/' + file)
        else:  # is a dir
            get_file((root_path+'/'+file),all_files)
    return all_files

# example
path = './raw_data'
print(get_file(path))

https://blog.csdn.net/weixin_39858881/article/details/86543689

Python中复制文件的两种简单方式

方法一:借助操作系统中本身的拷贝命令
import os
os.system("xcopy C:\\1.txt D:")

方法二:借助shutil模块来完成拷贝操作
import shutil
shutil.copyfile('C:\\1.txt', 'D:\\1.txt')