爬虫 常见的 插件和 用法
from fake_useragent import UserAgent
实用包:
headers = {'User-Agent': UserAgent().random} 从请求头包中随机挑选一个请求头
import os
常用法:
os.listdir() #返回指定目录下所有的文件和文件夹,返回的格式是列表(list)
path = os.path.join(path, str(name)) #拼接 文件夹地址
os.path.exists(path) #判断文件夹地址是否存在 返回 True 和 False
os.mkdir(path) # 创建文件
import requests
from lxml import etree
常用法:
resp = requests.get(url).content.decode('utf-8') 获取网页源码 utf-8 为修改编码
html = etree.HTML(resp) 将网页源码 转化为HTML格式 转为HTML格式后可使用xpath获取想要的数据
resp = etree.tostring(html) 可以将HTML格式转换为源码 便于观看
import re
正则:
resp = requests.get(url).content.decode('utf-8')
re.findall(r'',str(resp),re.S) 在resp源码中找到符合正则规则的所有 代码块 或 数据
import random
import linecache
常用法:
count = len(open(txt)) 读取文件行数
n = random.randint(0, count) n为小于等于count的随机数
linecache.getline(path,n) 从path地址的文件中随机获取一行使用
import cfscrape
常用法:
scrape = cfscrape.create_scraper() 和requests用法一样 用来跳过Cloudflare CDN防御
res = scrape .get(url).txt
----------------------------------------------------------------------
xpath:
position()
#适用于 获取元素获取 例:
<li>1</li> <li>2</li> <li>3</li>
//li[position()>1] # [2,3]
contains
# 适用于获取两个不同元素的标签 例:
<div @class="title">1</div> <div @alt="content">2</div>
//div[contians(@class,"title") or contains(@alt,"content")] # [1,2]
-------------------------------------------------------------------------
import operator
get_list = operator.itemgetter(0,2,4,7)
for i in get_list(List):
print(i) # 输出列表 中的 第(0,2,4,7)位