CSDN搜索并爬取数据

import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys


def get_cookies():
    web.find_element(By.XPATH,'//*[@id="csdn-toolbar"]/div/div/div[3]/div/div[1]/a').click()
    web.find_element(By.XPATH,'/html/body/div[2]/div/div[2]/div/div[2]/div/div/span[1]').click()
    input()
    cookie=web.get_cookies()
    json_cookie=json.dumps(cookie)
    with open('CSDN的cookie.txt','w') as f:
        f.write(json_cookie)
    print('cookie保存成功!!')

def post_cookie():
    with open('CSDN的cookie.txt','r',encoding='utf-8') as f:
        cookies=json.loads(f.read())

    for cookie in cookies:
        data={
            "domain": ".csdn.net",
            "name": cookie.get("name"),
            'value': cookie.get("value"),
            'expires': '',
            'path': "/",
            'httpOnly': False,
            'HostOnly': False,
            'Secure': False
        }
        web.add_cookie(data)
    web.implicitly_wait(10)
    web.refresh()       # 刷新一下页面,就能成功登录


def post_content():
    content=input('请输入你想要查询的内容:')
    web.find_element(By.XPATH,'//*[@id="toolbar-search-input"]').send_keys(content,Keys.ENTER)
    web.implicitly_wait(10)
    web.switch_to.window(web.window_handles[-1])
    div=web.find_elements(By.XPATH,'//*[@id="app"]/div[2]/div[2]/div[1]/div[2]/div/div')
    web.implicitly_wait(10)
    for a in div:
        title=a.find_element(By.CLASS_NAME,'title.substr').text
        web.implicitly_wait(10)
        href=a.find_element(By.TAG_NAME,'a').get_attribute('href')
        print(f'{title}\n{href}')
        print('--------------------------------')


if __name__ == '__main__':
    web = webdriver.Chrome()
    web.get('https://www.csdn.net/')
    web.maximize_window()
    web.implicitly_wait(10)
    # get_cookies()
    post_cookie()
    web.implicitly_wait(10)
    post_content()

这里的登录要用扫二维码,之后可凭保存下来的cookie直接登录(但时间长了就不行了好像,但可以自行查询资料改一下,应该是可以长期保存的)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清丶酒孤欢ゞ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值