Selenium问题

**

1、遇到style=“display: none”

方法一:
后来检查了一下发现display:none,这是一个css设置,可以让模块不显示
在这里插入图片描述
经过一翻查询发现可以用selenium执行js代码来修改css
在这里插入图片描述
经过一翻查询发现可以用selenium执行js代码来修改css

#  一页20个数据
for x in range(20):
	# 根据类来定位元素,必须加序号不然报错
    js = "document.getElementsByClassName('left f16')[%d].style.display='block'" % x
    # 执行js代码
    driver.execute_script(js)
    time.sleep(0.1)

class类不能简单直接拿来判断,因为具有多个class,所以要加上数组才能判断。
不一定必须使用类来定位id也可以:document.getElementById(“id值”)
方法二、使用pyquery库

在这里插入代码片import requests
import re
from pyquery import PyQuery as pq


""""
        爬取sopu信息
        url = http://www.soupu.com/pinpai/list.aspx?byt=6&syt=606&pptype=0
"""

class SoPu(object):

    def __init__(self) -> None:
        self.url = "http://www.soupu.com/pinpai/list.aspx?byt=6&syt=606&pptype=0"
        self.header = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
        }
    def get_url_list(self):
        response = requests.get(url=self.url,headers=self.header)
        html = response.text
        doc = pq(html)
        if doc('.ctl00_main_NoDataPanel').attr:
            doc('.NextPage').attr("display: block")
            response = requests.get(url=self.url, headers=self.header)
            html = response.text
            # print(html)
            return html
        else:
            print("无法获取本页面内容")
  参考:https://blog.csdn.net/hou9876543210/article/details/105881759
  ——————————————————————————
url="http://www.soupu.com/pinpai/list.aspx?byt=6&syt=606&pptype=0"
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'}
repons=requests.get(url=url,headers=headers).text
#print(repons)
tree=etree.HTML(repons)

for i in range(1,8):
    b="ctl00_main_repALL_ctl0%d_divContent"%i
    list_alt=tree.xpath("//*[@id='{}']//a//@alt".format(b))
    print(list_alt)
该网站是通过id对商品进行区分,构造id时 定要加上""号
区别见如下demo:
https://img-blog.csdnimg.cn/20201122172010107.png#pic_center
https://img-blog.csdnimg.cn/20201122172156818.png#pic_center
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值