出现warning需要ssl验证解决方法
写入文件时出错解决方法
json中dump和loads的区别
urllib3
import urllib3
urllib3.disable_warnings()
http=urllib3.PoolManager()#创建实例
rq=http.request('GET',url='https://edu.tipdm.org/')
print(rq.data)#响应实体
状态码
print(rq.status)#状态码
timeout参数的多种设置方法
# timeout参数
import urllib3
http=urllib3.PoolManager()
rq=http.request('GET',url='https://edu.tipdm.org/',timeout=3.0)
import urllib3
http=urllib3.PoolManager()
rq=http.request('GET',url='https://edu.tipdm.org/',
timeout=urllib3.Timeout(connect=1.0,read=2.0))
#也可分别设置连接和读取的timeout
import urllib3
http=urllib3.PoolManager(timeout==4.0)
rq=http.request('GET',url='https://edu.tipdm.org/')
#设置通用的timeout
retries参数
#reties参数:请求重试
import urllib3
http=urllib3.PoolManager(retries=False)
rq=http.request('GET',url='https://edu.tipdm.org/')
``
```python
import urllib3
http=urllib3.PoolManager()
rq=http.request('GET',url='https://edu.tipdm.org/',retries=False)
import urllib3
http=urllib3.PoolManager()
rq=http.request('GET',url='https://edu.tipdm.org/',retries=10)
重定向redirect参数
import urllib3
http=urllib3.PoolManager()
http=urllib3.PoolManager()
tm=urllib.Timeout(connect=1.0,read=3.0)
rq=http.request('GET',url='https://edu.tipdm.org/'',timeout=tm,rerties=3,redirect=5)
#重定向
数据存储
#ensure_ascii参数,将中文正常输出
import requests
from bs4 import BeautifulSoup
req=requests.get('http://www.hubu.edu.cn/')
soup=BeautifulSoup(req.content,'lxml')
dat=soup.select('body > div.sy-content > div > div > div:nth-child(2) > div.tzgg > div.xsdt-list > ul > li:nth-child(2) > a')
name=[i.text for i in dat]
href=[i['class'] for i in dat]
print(name,href)
输出结果:
[’\xa0\xa0【学教在线】资源环境学院:“云上思政”焕发新活力’] [[‘f_14’]]
import json
with open('./testjson','w',encoding='utf-8')as f:
json.dump({'href':href,'name':name},f,ensure_ascii=False)
import os
os.getcwd()
import pandas as pd
pd.DataFrame({'href':href,'name':name})
输出结果
‘C:\Users\Admin\Untitled Folder’
存入mysql
from sqlachemy import create_engine#建立一个数据库连接
#格式:数据库产品名称+连接工具://用户名:密码@数据库ip地址:数据库端口号、数据库名称?charset=数据库数据编码
con=create_engine(略)
#略
selenium获取图书信息
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
driver=webdriver.Chrome()
driver.get('http://www.ptpress.com.cn/shopping/index')
wait=WebDriverWait(driver,10)
before=driver.current_window_handle
seach_bot=driver.find_element_by_css_selector("body > div.classifySearch-p > div > div.classifySearchBar > div.allSearch > input")#找到查询框
seach_bot.send_keys("数据可视化")
confirm_bot=wait.until(
EC.element_to_be_clickable(By.CSS_SELECTOR,'body > div.classifySearch-p > div > div.classifySearchBar > div.allSearch > a > i'))
confirm_bot.click()
driver.page_source
结果如图:仍是首页的信息(也就是刚利用搜索框的页面)
driver.current_window_handle
before
输出结果都是:
‘CDwindow-8733EBC0C80804CE9B8C4253A3563A1A’
说明需要改变driver
driver.switch_to.window(driver.window_handles[1])
html=driver.page_source
此时已经得到想要的页面
from bs4 import BeautifulSoup
soup=BeautifulSoup(html,'lxml')
data=[i.text for i in soup.select('#search > div.book-floor > ul > li >p> a')]
data```
结果为:
['乐见数据 商业数据可视化思维',
'¥55.84',
'Power BI数据分析与数据可视化(微课版)',
'¥33.60',
'Python Qt GUI与数据可视化编程',
'¥79.20',
'大话数据分析2—Tableau数据可视化企业应用实战',
'¥63.20',
'大数据可视化技术',
'¥31.84',
'大话数据分析 Tableau数据可视化实战',
'¥71.20',
'商务数据可视化(全彩微课版)',
'¥39.84',
'D3 4.x数据可视化实战手册 第2版',
'¥55.20',
'Kibana数据可视化',
'¥47.20',
'Python数据可视化编程实战 第2版',
'¥55.20',
'JavaScript数据可视化编程',
'¥79.20',
'大数据可视化:重构智慧社会',
'¥47.20',
'Python数据可视化编程实战',
'¥39.20',
'D3.js数据可视化实战手册',
'¥47.20',
'R数据可视化手册',
'¥71.20',
'数据可视化实战:使用D3设计交互式图表',
'¥47.20',
'鲜活的数据:数据可视化指南',
'¥55.20']
获取书名
```python
data[::2]
[‘乐见数据 商业数据可视化思维’,
‘Power BI数据分析与数据可视化(微课版)’,
‘Python Qt GUI与数据可视化编程’,
‘大话数据分析2—Tableau数据可视化企业应用实战’,
‘大数据可视化技术’,
‘大话数据分析 Tableau数据可视化实战’,
‘商务数据可视化(全彩微课版)’,
‘D3 4.x数据可视化实战手册 第2版’,
‘Kibana数据可视化’,
‘Python数据可视化编程实战 第2版’,
‘JavaScript数据可视化编程’,
‘大数据可视化:重构智慧社会’,
‘Python数据可视化编程实战’,
‘D3.js数据可视化实战手册’,
‘R数据可视化手册’,
‘数据可视化实战:使用D3设计交互式图表’,
‘鲜活的数据:数据可视化指南’]
import pandas as pd
pd.DataFrame({"价格":data[1::2],"书名":data[::2]})