欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

简单记录下 刚学的爬虫

程序员文章站 2023-09-17 22:44:50
网课资源是 中国MOOC上 北京理工大学 嵩天老师上的 Python网络爬虫与信息提取下方为链接:网课地址requeststry:r = requests.get(url, timeout = 30 )r.raise_for_status()//如不是200 则返回异常r.encoding = r.apparent_encoding//将r的编码格式更改为 解析后建议的函数return r.text() //返回内容except:return "a exception"*....

网课资源是 中国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