青岛的网站建设,营销网站建设yyeygtytty,网站 设计公司 温州,网络营销推广方式包括这里先说一下GET请求和POST请求#xff1a; post我们平时是要加data的也就是信息#xff0c;你会发现我们平时百度之类的 搜索都是post请求
get我们带的是params#xff0c;是发送我们指定的内容。
要注意是get和post请求#xff01;#xff01;#xff01;
先说一下异…这里先说一下GET请求和POST请求 post我们平时是要加data的也就是信息你会发现我们平时百度之类的 搜索都是post请求
get我们带的是params是发送我们指定的内容。
要注意是get和post请求
先说一下异步社区的爬取吧 import ast
import json
import os
import requests
import reimg_path 异步社区免费书名
img_path f./{img_path}/ # 指定保存地址
if not os.path.exists(img_path):print(您没有这个文件为您新建一个文件---)os.mkdir(img_path)
else:print(f为您保存在{img_path}文件夹中)url https://www.epubit.com/pubcloud/operation/front/portal/getData?hearder {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0,Cookie:acw_tc2760778817075767822875772e9bcf3ab5beae1aa1ebb67787560accfa3087
}
for i in range(1,4,1):params {policyId: 97a5bcb8-54c2-4649-ac37-72a11b0490dc,floorCode: A1,more: true,page: f{i},row: 10}response requests.get(url,headershearder,paramsparams).text#print(response)dic json.loads(response)# print(dic)# print(type(dic))dic2 dic[data]dic3 dic2[records]for i in range(0,len(dic3),1):content dic3[i][name]print(content)#print(type(dic3[i]))f open(f{img_path}name.txt, a)content content\nf.write(content) 这个方法是用我以前用的动态网页爬取的爬的。还在尝试用selenium爬取没有成功
这是没有加params你会发现找不到我们想要找的。这个是个动态网页的抓取。 然后加上上面代码中的params就可以进入了。
1.dic json.loads(response) 这个就是把json形式转为字典json的形式就是代大括号像字典的。
2.
dic2 dic[data]
dic3 dic2[records]
这个就是找找找
3.for i in range(0,len(dic3),1):content dic3[i][name]print(content)#print(type(dic3[i]))f open(f{img_path}name.txt, a)content content\nf.write(content)
结束还想尝试selenium但是没成功 下来进入重点
先说自动化这个就是基本形式
from selenium import webdriver
from selenium.webdriver.common.by import By# 创建 WebDriver 对象
wd webdriver.Chrome()# 调用WebDriver 对象的get方法 可以让浏览器打开指定网址
wd.get(https://www.byhy.net/_files/stock1.html)# 根据id选择元素返回的就是该元素对应的WebElement对象
element wd.find_element(By.ID, kw)# 通过该 WebElement对象就可以对页面元素进行操作了
# 比如输入字符串到 这个 输入框里
element.send_keys(通讯\n)
1.web自动化选择元素
element wd.find_element(By.ID, kw)
这个就是选择ID为kw的内容。ID这里可以变为CLASS_NAME
elements wd.find_elements(By.TAG_NAME, div)
这个是找标签
2.wd.click()这个是点击wd.quit()这个关闭网页
3.为防止我们平时爬取太慢而没有爬到——wd.implicitly_wait(10)
这个就是没有爬到等待最多等到10s
4.这个也是获取class的内容
element.get_attribute(class)
获取HTML
element.get_attribute(innerHTML)
获取输入框内容
element.get_attribute(value) 下面是css表达式这个就比较高效了
如果我们要选择的 元素 没有id、class 属性或者有些我们不想选择的元素 也有相同的 id、class属性值怎么办呢
这时候我们通常可以通过 CSS selector 语法选择元素。 css格式 ——class——‘.’ ——id——‘#’ ——标签——“什么都不要” ——href——“[href网址]” 这个是搜索格式 find_element(By.CSS_SELECTOR, CSS Selector参数) div classmisc ctypegun沙漠之鹰/div
CSS 选择器 可以指定 选择的元素要 同时具有多个属性的限制像这样 div[classmisc][ctypegun] 子和后代元素的选择
子元素 ‘’
后代元素‘空格’ div.footer1 span.copyright
这个的意思是 div标签的class类中的叫footer1的子元素span标签的class类的叫copyright
.footer1 .copyright
这个意思是class类叫footer1的后代叫copyright的
.plant , .animal
这个意思是class类叫plant和叫animal的选择
这个是格式
elements wd.find_elements(By.CSS_SELECTOR, .plant , .animal) 节点
我们可以指定选择的元素 是父元素的第几个子节点
使用 nth-child
span:nth-child(2)
这个意思是父元素的第二个子元素类型为span
p:nth-last-child(1)
这个意思是 倒数
nth-of-type
这个意思是只看这个所选的类型
span:nth-of-type(1)
这个意思是第一个span类型的子元素
nth-last-of-type
这个是 倒数
nth-child(even)——偶数节点nth-child(odd)——奇数节点
如果要选择的是父元素的 某类型偶数节点使用 nth-of-type(even)
如果要选择的是父元素的 某类型奇数节点使用 nth-of-type(odd)
h3 span
标签为h3后面紧跟的span
h3 ~ span
标签为h3后面的所有span节点 css注意“空格”不能乱加这个是根据白月黑雨写的这个爆赞