简单记录下 刚学的爬虫
网课资源是 中国MOOC上 北京理工大学 嵩天老师上的 Python网络爬虫与信息提取
下方为链接:网课地址
requests
try:
r = requests.get(url, timeout = 30 )
r.raise_for_status()//如不是200 则返回异常
r.encoding = r.apparent_encoding//将r的编码格式更改为 解析后建议的函数
return r.text() //返回内容
except:
return "a exception"
**更改user-agent
kv = {'user-agent':'Mozilla/5.0}
#kv = {'user-agent': 'Mozilla/5.0 (Linux; Android 9; SM-G9650 Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/11.18 SP-engine/2.14.0 baiduboxapp/11.18.0.12 (Baidu; P1 9)'}
#上为模拟手机浏览器的useragent标识
url = "https://www.amazon.cn/gp/product/B01M8L5Z3Y"
r = requests.get(url, headers = kv)
**更改params参数
kv = {'wd':'Python}
r = requests.get("www.baidu.com", params = kv)
r.status_code
r.request.url
**save jpg
path = "R:/test1.jpg"
url = "http://.........jpg"
r = requests.get(url)
r.status_code
with open(path, 'wb') as f: //转换二进制
f.write(r.content)//r.content为二进制格式,将其放到f中
f.close()
**search ip
import requests
url = "http://m.ip138.com/ip.asp?ip="
try:
r = requests.get(url.'202.204.80.112')
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text[-500:]
except:
print("lose search")
BeautifulSoup
.tag 获得标签
.name 获得标签的名字
.attrs 获得属性 返回字典
.string 获得字符串 如是注释 会去掉–!and 注释是特殊类型
tag //标签
name//名字
attributes //标签的属性
navigableString //标签之间的字符串
comment //注释的字符串
**迭代类型只可用于循环中
//下行遍历
.contents 返回子节点列表,将所有儿子节点存入表格
.children 子节点的迭代类型,用于循环遍历儿子节点
.descendants 子孙节点的迭代类型,包含所有子孙节点,用于循环遍历
//上行遍历
.parent 返回节点的父亲标签
.parents 返回节点先辈标签的迭代类型,用循环遍历先辈节点
//平行遍历
.next_sibling 返回按照html文本顺序的下一个平行节点标签
.previous_sibling 返回按照html文本顺序的上一个平行节点标签
.next_siblings 迭代类型,返回按照html文本顺序的后续所有平行节点标签
.previous_siblings 迭代类型,返回按照html文本顺序的前续所有平行节点标签
//在每个标签后加入换行符,使阅读界面更友好
soup.prettify()
迭代类型返回为数组形式 需加入[0]选取对应标签
**<>.find_all(name, attrs, recursive, string, **kwargs)
name //对标签名称的检索字符串
attrs //对标签属性值的检索字符串,可标注属性检索
recursive //是否对子孙全部检索 默认true
string <>…</>中字符串区域的检索字符串
**<tag?(…) == .find_all(…)
soup(…) == soup.find_all(…)
<>.find()
<>.find()_parents()
<>.find()_parent()
<>.find()_next_siblings()
<>.find()_next_sibling()
<>.find()_previous_siblings()
<>.find()_previous_sibling()
example:
soup.find_all(‘p’, ‘course’)
soup.find_all(id = ‘link1’)
Regular Expression
本文地址:https://blog.csdn.net/weixin_44376152/article/details/107145582