python爬虫模块
Python 爬虫训练
一、基本爬虫三段式
import requests
response = requests.get('https://baidu.com')
print(response.text)
即可打印来自baidu的前端代码
二、爬虫的数据清洗
1.xpath
from lxml import etree
url = 'https://baidu.com'
response = requests.get(url)
#将源代码转化成网页结构
html = etree.HTML(response.text)
#在通过xpath来选择数据
data_info=html.xpath('/html/body/div[2]/div[3]/div/div[2]/div[4]/div[1]/div[1]/a/p[1]/span[1]')
print(data_info)
2.正则表达式(.*?)
import re
data = {'fdasfagagawe'}
a = re.findall('[a-z]',data,re.S)
print(a)
3.BeautifulSoup+CSS选择器
1.四大类型:
navigableString 文本类型
comment 注释
BeautifulSoup
文档数 –子节点
soup.head.children# 迭代器 也是一个对象
from bs4 import BeautifulSoup import requests import json url = 'https://www.baidu.com' response = requests.get(url) response.encoding = 'utf8' soup = BeautifulSoup(response.text,'lxml') print(soup.head.children)#打印的是一个对象 #要想打印出来必须迭代出来,也就是一条一条输出 for child in soup.head.children: print(child) #将他的子孙节点都迭代出来 for child in soup.descendants: print(child) #父节点 .parents 可迭代当前标签的所有父节点 for parent in soup.p.parents: print(parent) #兄弟节点 .next_sibling 获取下一个兄弟 .prev_sibling 获取上一个兄弟 #前后节点 .next_element .previous_element #可以加s
2.css选择器
div.class#id 多层就空格
soup.find('div.hl-main span')#跟select_one一样,只一次
soup.find_all('a')#找出所有a标签
soup.select('div.hl-main span')#等同find_all
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 游城二十代!
评论