爬虫相关库及语法

1.URLLIB

from urllib import request
print(request.urlopen(url).read().decode("utf-8"))

2.REQUESTS

import requests
from charset_normalizer import detect
response = requests.get(url, headers={})
response.encoding = detect(response.content)['encoding']
print(response.text)

3.RE

import re
reg = re.compile(rule)
re.findall(reg, str)

技巧:统一复制下来需要正则字段,去异存同,去掉用.*?代替,保存用(.*?)

4.BS4

构建bs4对象:

soup = BeautifulSoup(html, 'html.parser')

1.从xx范围内查找第一个yy标签 xx.yy

soup.title / soup.h1 / soup.p / soup.p.b

2.取出标签的文本内容

xx.text 跨标签文本  soup.title.text
xx.string 单标签文本  soup.p.text

3.取出标签的属性内容

#  一次性取出所有属性 xx.attrs 得到一个所有属性与值组成字典
xx.attrs['name']

4.精准查找指定标签,通过tagname,id,class,attr,text查找标签

xx.find()第一个符合条件标签
1.xx.find('div')  # 通过tagName
2.xx.find(id='yy')  # 通过id 
3.xx.find(class_='yyy')  # 通过class 
4.xx.find(text='div文本')  # 通过其他属性 包括id class_ 通过文本内容

5.精准查找指定标签

xx.find_all()  # 多个标签,返回list对象
xx.find_all('p', class_='title', id='yy')
lis = soup.find(id='ultwo').find_all('li')
[li.text for li in lis]

6.根据上下级关系(父子关系)查找标签对象

xx.parent  # 找父元素
xx.children  # 找子元素

7.通过兄弟关系查找标签对象

xx.previous_sibling  # xx前面对象
xx.next_sibling  # xx后面对象
xx.previous_siblings  # xx前面多个对象

8.多个元素同时查找

xx.find_all(['a', 'b'])

9.正则查询

import re
xx.find_all(class_=re.compile('sis\W+'))
soup.find_all(class_=['title', re.compile('sis\w+')])

10.是否递归查找

xx.find_all(.., recursive=True/False)  # 默认递归

11.控制查找个数

xx.find_all(..,limit=int)  # limit 参数

5.SELENIUM

from selenium import webdriver  # 导入模块

1.打开浏览器

driver = webdriver.Chrom()

2.访问网址

driver.get(url)

3.查找网页标签内容

 xx.find_element_by_id()
xx.find_elements_by_tag_name()  # 多个对象,返回列表

4.输入文字语法

xx.send_keys(文本)

5.点击的语法

xx.click()

6.滚动页面语法

driver.execute_script("windows.scrollby(x, y)")

7.获取标签对象的文本和属性

xx.text   
xx.get_attribute('属性名称')  # 返回属性值

8.最大最小化窗口 以及窗口处理

driver.maxmize_window()  # 最大化
driver.set_window_size(宽, 高)  # 指定大小
driver.get_window_size()  # 获取大小

9.窗口句柄

driver.window_handles

10.关闭当前窗口

driver.close()

11.内嵌网页,切换iframe层级

driver.switch_to.frame(xxid/name)

12.刷新页面

driver.refresh()

13.键盘事件

from selenium.webdriver.common.keys import Keys
xx.send_keys(Keys.NUMPAD1)
xx.send_keys(Keys.ENTER)

14.页面等待

显示等待:指定内容加载开始下一步

隐式等待:固定时间开始下一步

driver.implicitly_wait(10) == time.sleep(10)

15.获取网页解析后页面代码

driver.page_source

16.退出浏览器

driver.quit()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值