精华内容
下载资源
问答
  • 主要介绍了Python爬虫实现模拟点击动态页面,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • @爬虫模拟网站登录 爬虫模拟网站登录 需要的工具 python3.x ...安装BeautifulSoup、...因为要爬虫模拟一个网站的登录,但是分析源码后发现,该网站的登录页面是动态加载的,在点击登录后弹出一个窗口,而不是...

    @Python爬虫模拟网站登录

    Python爬虫模拟网站登录

    需要的工具

    • python3.x
    • Fiddler
    • 安装BeautifulSoup、urllib库

    1.我们首先需要查看网站源码,这里用的是搜狗浏览器,它的开发者工具使用起来比较方便,Google Chrome和IE也有开发者工具,操作相似。

    在这里插入图片描述
    在这里插入图片描述

    1. 因为要爬虫模拟一个网站的登录,但是分析源码后发现,该网站的登录页面是动态加载的,在点击登录后弹出一个窗口,而不是一个单独的url。
      在这里插入图片描述
      网站获取用户的输入后会将数据传送给https://www.gongzicp.com/login/userLogin(不可以直接访问)。
      这个网站之前没有使用验证码检验爬虫,所以可以使用cookie直接把登录需要的用户名和密码post给url就可以。
      这里有一个问题,我们可以通过Fiddler抓包发现,传送的数据不止有用户名和密码,还有ncode、zzz和remember这几个数值。登录传送数据
      这些数据不是用户输入的,那么就是网站自己生成或者判断的。
      我们再看一下fiddler的抓包情况。
      在这里插入图片描述
      在这里插入图片描述
      可以看到在进行登录之前,网站先访问了https://www.gongzicp.com/login/nationCode ,在fiddler查看该网页的返回的内容:
      在这里插入图片描述
      虽然没有找到ncode,但有一个值code等于86。而后面的\u4e2d\u56fd\u5927\u9646明显经过了编码。想要知道它的具体内容,我们就要将它爬取下来解码。代码如下:
    import urllib.parse
    import json
    #import chardet
    import requests
    import os
    import sys
    import random
    from bs4 import BeautifulSoup
    from urllib.request import quote,unquote
    class Download:
        def __init__(self):
            self.server='https://www.gongzicp.com'
            self.ncode='https://www.gongzicp.com/login/nationCode'  
            self.login='https://www.gongzicp.com/login/userLogin'
            #设置多个用户信息,预防反爬虫
            self.user_agents=[
                'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',
                'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
                'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299',
                'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0'
            ]
           #伪装报头
            self.header = {
                'Host':'www.gongzicp.com',
                'Connection': 'keep-alive',
                'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
                'Origin': 'https://www.gongzicp.com',
                'Accept-Language':'zh-CN,zh;q=0.8',
                'Cache-Control':'max-age=0',
                #'Referer':'https://www.gongzicp.com/novel-30233.html',
                'Upgrade-Insecure-Requests':'1',
                'User-Agent': self.user_agents[random.randrange(0,4)],
                'Accept-Encoding': 'gzip, deflate, br',
                'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
            }
            
       def getOpener(self,head):
            # deal with the Cookies
            self.cj = http.cookiejar.CookieJar()
            self.pro = urllib.request.HTTPCookieProcessor(self.cj)
            self.opener = urllib.request.build_opener(self.pro)
            self.header = []
            for key, value in head.items():
                elem = (key, value)
                self.header.append(elem)
            self.opener.addheaders = self.header
            return self.opener
            
       def js(self):
            self.opener = self.getOpener(self.header)
            getUserInfo_url='https://www.gongzicp.com/login/nationCode'
            op = self.opener.open(getUserInfo_url)
            data = op.read()
            #解压缩
            data = gzip.decompress(data)
            #解码
            data=data.decode('unicode-escape')
            print(data)
    

    这里有两个需要注意的地方:

    • 解压缩。我们用开发者工具查看网站源码,可以发现,网站的返回内容经过了压缩。所以需要对返回值进行解压。
      在这里插入图片描述
    • 编码方式。我们要将内容进行转码,否则中文将会以乱码形式出现。这里需要的解码方式是unicode-escape,不同网站可能不一样。
    1. 解决了ncode的问题,那么zzz是什么值呢?我们继续查看源码
      在这里插入图片描述
      可以看到,zzz的值在源码之中,每次刷新页面都会变化。那么我们就使用beautifulsoup获取这一段数值。其中部分代码如下:
    soup = BeautifulSoup(data, "html.parser")        
    #print(soup.prettify())
    vue=str(soup.find_all('script',type='text/javascript'))
    

    而remember的值也可以在源码中找到,应该是代表是否保存密码。这里选择了保存密码,所以为1。
    在这里插入图片描述
    4.获取了所有的数值后,就可以post数值进行登录了。

             postDict = {
                    'ncode':'86',
                    'username': user_id,
                    'password': user_passw,
                    'remember': '1',
                     'zzz':zzz
            }
            postData = urllib.parse.urlencode(postDict).encode('utf-8')
            login_op = self.opener.open(self.login, postData)
            print('have login')
            #获取用户信息,查看登录是否成功        
            getUserInfo_url='https://www.gongzicp.com/user/getUserInfo'
            op = self.opener.open(getUserInfo_url)
            data = op.read()
            data = gzip.decompress(data)
            data=data.decode('unicode-escape')
            print(data)
    
    展开全文
  • 一开始搞模拟登陆的时候,我尝试过使用selenium的模拟点击,但是感觉那样太麻烦,一是每个网页都需要写特定的规则,而是耗时太长,效率太低。第三个就是验证码。 所以还是安安心心的用post请求吧# coding=UTF-8 ...

    在爬取一些网页的时候,往往有些网页的内容是需要登陆才可以获取的,这个时候我们就需要用到模拟登陆。
    一开始搞模拟登陆的时候,我尝试过使用selenium的模拟点击,但是感觉那样太麻烦,一是每个网页都需要写特定的规则,而是耗时太长,效率太低。第三个就是验证码。
    所以还是安安心心的用post请求吧

    # coding=UTF-8
    import re
    import requests
    from bs4 import BeautifulSoup
    import time
    import lxml
    from PIL import Image
    import json
    import time
    import cookielib
    from mycptcha import APIClient
    # import http.cookiejar
    class Zhihu(object):
           # 初始化参数:请求头和session并加载cookie
           def __init__(self):
                  self.headers = {
                         'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0',
                         "Host": "www.zhihu.com",
                         "Referer": "https://www.zhihu.com/",
                         }
    
                  self.session = requests.Session()
                  self.session.cookies = cookielib.LWPCookieJar("cookie")
                  try:
                         self.session.cookies.load(ignore_discard=True)
                  except IOError:
                         print('Cookie未加载!')
    
           #获取网页中的xsrf,后续需作为请求数据发送
           def get_xsrf(self):
                  html = self.session.get('https://www.zhihu.com', headers=self.headers).text
                  soup = BeautifulSoup(html, 'lxml')
                  xsrf = soup.find('input').get('value')
                  return xsrf
           #获取验证码图片并显示
           def get_captcha(self):
                  cli=APIClient()
                  t = str(int(time.time() * 1000))
                  captcha_url = 'http://www.zhihu.com/captcha.gif?r=' + t + "&type=login"
                  response=self.session.get(captcha_url,headers=self.headers)
                  file=open('cptcha.gif','wb')
                  with file as f:
                         f.write(response.content)
    
                  print '正在为您自动识别并输入验证码...'
                  captcha=cli.result()
                  return captcha
    
           #登陆方法,需传入用户名和密码
           def login(self,username,password):
                  #如果传入的为11位数字的话,则传入phone_num
                  if re.match(r'\d{11}$',username):
                         url = 'http://www.zhihu.com/login/phone_num'
                         data={
                                '_xsrf': self.get_xsrf(),
                                'password': password,
                                'remember_me': 'true',
                                'phone_num': username
                         }
                  #否则传入email
                  else:
                         url = 'https://www.zhihu.com/login/email'
                         data = {'_xsrf': self.get_xsrf(),
                                 'password': password,
                                 'remember_me': 'true',
                                 'email': username
                                 }
                  #发送post请求
                  response = self.session.post(url, data=data, headers=self.headers)
                  #将源代码导入为json格式
                  result=json.loads(response.text)
                  #如果返回状态为1,则登陆失败,需要传入验证码
                  if(result['r']==1):
                         #传入captcha参数,数值为get_captcha方法的返回值
                         data['captcha']=self.get_captcha()
                         #再次请求
                         response2=self.session.post(url, data=data, headers=self.headers)
                         #输出登陆状态
                         print((json.loads(response2.text))['msg'])
                  #保存cookies
                  self.session.cookies.save(ignore_discard=True, ignore_expires=True)
    
           #测试是否已经登陆过
           def is_login(self):
                  #此网址为用户个人资料,如果之前没有登陆过,浏览器则会重定向到登陆网址
                  url = "https://www.zhihu.com/settings/profile"
                  # 禁止重定向,否则登录失败重定向到首页也是响应200
                  login_code = self.session.get(url, headers=self.headers, allow_redirects=False)
                  if login_code.status_code == 200:
                         return True
                  else:
                         return False
           #返回登陆过的session对象
           def get_session(self):
                  return self.session
    
    if __name__=='__main__':
    
           zhihu=Zhihu()
           if zhihu.is_login():
                  print('已经登陆过的')
                  session=zhihu.get_session()
           else:
                  username=raw_input('请输入用户名:')
                  password=raw_input('请输入密码:')
                  zhihu.login(username,password)
                  session=zhihu.get_session()
           url = "https://www.zhihu.com/settings/profile"
           info=session.get(url,headers=zhihu.headers)
           print(info.text)
    展开全文
  • Python 爬虫模拟登录方法汇总

    千次阅读 2018-10-29 06:48:43
    摘要: 在进行爬虫时,除了常见的不用登录就能爬取的网站,还有一类需要先登录的网站。比如豆瓣、知乎,以及上一篇文章中的桔子网。这一类网站又可以分为:只需输入帐号密码、除了帐号密码还需输入或点击验证码等...

    摘要: 在进行爬虫时,除了常见的不用登录就能爬取的网站,还有一类需要先登录的网站。比如豆瓣、知乎,以及上一篇文章中的桔子网。这一类网站又可以分为:只需输入帐号密码、除了帐号密码还需输入或点击验证码等类型。本文以只需输入账号密码就能登录的桔子网为例,介绍模拟登录常用的 3 种方法。

    • POST 请求方法:需要在后台获取登录的 URL并填写请求体参数,然后 POST 请求登录,相对麻烦;
    • 添加 Cookies 方法:先登录将获取到的 Cookies 加入 Headers 中,最后用 GET 方法请求登录,这种最为方便;
    • Selenium 模拟登录:代替手工操作,自动完成账号和密码的输入,简单但速度比较慢。

    下面,我们用代码分别实现上述 3 种方法。

    1. 目标网页

    这是我们要获取内容的网页:

    radar.itjuzi.com/investevent

    这个网页需要先登录才能看到数据信息,登录界面如下:

    可以看到,只需要输入账号和密码就可以登录,不用输验证码,比较简单。下面我们利用一个测试账号和密码,来实现模拟登录。

    2. POST 提交请求登录

    首先,我们要找到 POST 请求的 URL。

    有两种方法,第一种是在网页 devtools 查看请求,第二种是在 Fiddler 软件中查看。

    先说第一种方法。

    在登录界面输入账号密码,并打开开发者工具,清空所有请求,接着点击登录按钮,这时便会看到有大量请求产生。哪一个才是 POST 请求的 URL呢?这个需要一点经验,因为是登录,所以可以尝试点击带有 「login」字眼的请求。这里我们点击第四个请求,在右侧 Headers 中可以看到请求的 URL,请求方式是 POST类型,说明 URL 找对了。

    接着,我们下拉到 Form Data,这里有几个参数,包括 identify 和 password,这两个参数正是我们登录时需要输入的账号和密码,也就是 POST 请求需要携带的参数。

    参数构造非常简单,接下来只需要利用 Requests.post 方法请求登录网站,然后就可以爬取内容了。

    下面,我们尝试用 Fiddler 获取 POST 请求。

    如果你对 Fiddler 还不太熟悉或者没有电脑上没有安装,可以先了解和安装一下。

    Fiddler 是位于客户端和服务器端的 HTTP 代理,也是目前最常用的 HTTP 抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP 请求,可以针对特定的 HTTP 请求,分析请求数据、设置断点、调试 web 应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是 web 调试的利器。

    Fiddler 下载地址:

    www.telerik.com/download/fi…

    使用教程:

    zhuanlan.zhihu.com/p/37374178

    www.hangge.com/blog/cache/…

    下面,我们就通过 Fiddler 截取登录请求。

    当点击登录时,官场 Fiddler 页面,左侧可以看到抓取了大量请求。通过观察,第15个请求的 URL中含有「login」字段,很有可能是登录的 POST 请求。我们点击该请求,回到右侧,分别点击「inspectors」、「Headers」,可以看到就是 POST 请求,该 URL 和上面的方法获取的 URL 是一致的。

    接着,切换到右侧的 Webforms 选项,可以看到 Body 请求体。也和上面方法中得到的一致。

    获取到 URL 和请求体参数之后,下面就可以开始用 Requests.post 方法模拟登录了。

    代码如下:

    import requests
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36',
        }
    data = {
        'identity':'irw27812@awsoo.com',   
        'password':'test2018',
    }
    url ='https://www.itjuzi.com/user/login?redirect=&flag=&radar_coupon='
    session = requests.Session()
    session.post(url,headers = headers,data = data)
    # 登录后,我们需要获取另一个网页中的内容
    response = session.get('http://radar.itjuzi.com/investevent',headers = headers)
    print(response.status_code)
    print(response.text)
    复制代码

    使用 session.post 方法提交登录请求,然后用 session.get 方法请求目标网页,并输出 HTML代码。可以看到,成功获取到了网页内容。

    下面,介绍第 2 种方法。

    3. 获取 Cookies,直接请求登录

    上面一种方法,我们需要去后台获取 POST 请求链接和参数,比较麻烦。下面,我们可以尝试先登录,获取 Cookie,然后将该 Cookie 添加到 Headers 中去,然后用 GET 方法请求即可,过程简单很多。

    代码如下:

    import requests
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36',
        'Cookie': '你的cookie',
    }
    url = 'https://www.itjuzi.com/user/login?redirect=&flag=&radar_coupon='
    session = requests.Session()
    response = session.get('http://radar.itjuzi.com/investevent', headers=headers)
    
    print(response.status_code)
    print(response.text)
    复制代码

    可以看到,添加了 Cookie 后就不用再 POST 请求了,直接 GET 请求目标网页即可。可以看到,也能成功获取到网页内容。

    下面介绍第 3 种方法。

    4. Selenium 模拟登录

    这个方法很直接,利用 Selenium 代替手动方法去自动输入账号密码然后登录就行了。

    关于 Selenium 的使用,在之前的一篇文章中有详细介绍,如果你不熟悉可以回顾一下:

    www.makcyun.top/web_scrapin…

    代码如下:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.wait import WebDriverWait
    browser = webdriver.Chrome()
    browser.maximize_window()  # 最大化窗口
    wait = WebDriverWait(browser, 10) # 等待加载10s
    
    def login():
        browser.get('https://www.itjuzi.com/user/login')
        input = wait.until(EC.presence_of_element_located(
            (By.XPATH, '//*[@id="create_account_email"]')))
        input.send_keys('irw27812@awsoo.com')
        input = wait.until(EC.presence_of_element_located(
            (By.XPATH, '//*[@id="create_account_password"]')))
        input.send_keys('test2018')
        submit = wait.until(EC.element_to_be_clickable(
            (By.XPATH, '//*[@id="login_btn"]')))
        submit.click() # 点击登录按钮
        get_page_index()
    
    def get_page_index():
        browser.get('http://radar.itjuzi.com/investevent')
        try:
            print(browser.page_source)  # 输出网页源码
        except Exception as e:
            print(str(e))
    login()
    
    复制代码

    这里,我们在网页中首先定位了账号节点位置:'//*[@id="create_account_email"]',然后用 input.send_keys 方法输入账号,同理,定位了密码框位置并输入了密码。接着定位 登录 按钮的位置://*[@id="login_btn"],然后用 submit.click() 方法实现点击登录按钮操作,从而完成登录。可以看到,也能成功获取到网页内容。

    以上就是模拟需登录网站的几种方法。当登录进去后,就可以开始爬取所需内容了。

    5. 总结:

    • 本文分别实现了模拟登录的 3 种操作方法,建议优先选择第 2 种,即先获取 Cookies 再 Get 请求直接登录的方法。
    • 本文模拟登录的网站,仅需输入账号密码,不需要获取相关加密参数,比如 Authenticity_token ,同时也无需输入验证码,所以方法比较简单。但是还有很多网站模拟登录时,需要处理加密参数、验证码输入等问题。后续将会介绍。

    推荐阅读:

    本文完。

    欢迎长按识别关注我的公众号

    转载于:https://juejin.im/post/5bd6acdbf265da0aba710136

    展开全文
  • 2、根据腾讯课堂链接,进入页面,获取页面中登陆的xpath,并进行点击操作。 获取xpath的方法是:在如上所示箭头所指登陆位置右击操作,点击检查,获取以下页面。在登陆所在标签处右击进行复制xpath。 3...

    根据腾讯课堂网页登陆问题进行解说(需要安装谷歌浏览器):

    1、导入库

    import requests

    from selenium import webdriver

    2、根据腾讯课堂链接,进入页面,获取页面中登陆的xpath,并进行点击操作。

    获取xpath的方法是:在如上所示箭头所指登陆位置右击操作,点击检查,获取以下页面。在登陆所在标签处右击进行复制xpath。

     

    3、进入登陆页面之后获取登陆方式,本次选择使用qq进行登陆,获取qq登陆的xpath并进行点击操作。

    driver.find_element_by_xpath('/html/body/div[4]/div/div[2]/div[2]/a[1]').click()

    4、点击使用账号密码登陆。在该登陆过程中出现以下错误。

      主要原因是无法找到我们定位的xpath,需要先找到定位元素所处的frame,并从frame中寻找该元素。

     

    driver.switch_to_frame("login_frame_qq")//引号中添加frame标签中的name或id值driver.find_element_by_xpath('//*[@id="switcher_plogin"]').click()

    5、获取到输入账号密码以及登陆位置的xpath。当运行时再次出现定位不到xpath的情况,使用第四步的方法依旧没能成功,提示所在框架不对,估计是跟第4步的frame标签的name相同的原因吧。最后的解决方法是:先回到最外层框架,之后进入要定位元素的框架,最后对账号密码进行定位。

     

    6、点击登陆按钮,至此就已经进入网页版的腾讯课堂了。

    driver.find_element_by_xpath('//*[@id="login_button"]').click()

    完整代码如下:

     

    展开全文
  • 如题,我如果使用“--headless”的话,模拟点击的登陆进程无法实现,是否有其他办法可以不让浏览器弹出,但又可以完成模拟点击的操作?
  • Python爬虫实战(windows)关于本文: 上一篇文章介绍了如何使用python爬虫进行网页图片等素材的抓取。我们以爬虫抓取作为基础,结合GUI设计,再通过自定义方法,就可以实现一些小软件的设计制作。本文章就分三个...
  • python爬虫鼠标模拟悬停并点击

    千次阅读 2018-12-26 10:16:00
    #鼠标模拟悬停并点击 import time from selenium import webdriver from selenium.webdriver.firefox.options import Options as FOptions options=FOptions() browser=webdriver.Firefox(executable_...
  • result= driver.find_element_by_class_name('需要点击的类名') result.click() 这样就实现了点击效果 多个按钮需要点击,可以选择复数形式9-16条.然后用对应的类名找到所有的标签,注意这里我用resul_list,因为返回...
  • python 爬虫之selenium可视化爬虫

    万次阅读 多人点赞 2020-08-05 19:52:11
    selenium爬虫主要是模拟人的点击操作 selenium驱动浏览器并进行操作的过程是可以观察到的 就类似于你在看着别人在帮你操纵你的电脑,类似于别人远程使用你的电脑 当然了,selenium也有无界面模式 快速入门 sel
  • python爬虫学习笔记 3.4 (案例二,动态页面模拟点击) 案例二:动态页面模拟点击 爬取斗鱼直播平台的所有房间信息: import time from selenium import webdriver import json import csv class douyu: def __...
  • Python爬虫模拟登录

    2017-04-30 16:17:20
    借用cookie进行登录验证的原理一般情况用户使用浏览器进行登录操作,认证通过后服务器返回给用户一个cookie用来保存登录态。...我们首先将浏览器里复制到的cookie字符串进行处理,转化成为Python的字典
  • 难点在于,无论点哪里,url看起来永远是一样的,这就增大了爬虫的难度。 爬虫需要做的事情: 1,爬取目标是ajax页面,需要selenium+无头浏览器 2,网页里面的搜索框(可选功能) 3,选项按钮 默认页面中,信息...
  • python爬虫实践之模拟登录

    千次阅读 2017-01-23 13:50:49
    python爬虫实践之模拟登录 有些网站设置了权限,只有在登录了之后才能爬取网站的内容,如何模拟登录,目前的方法主要是利用浏览器cookie模拟登录。 浏览器访问服务器的过程 在用户访问网页时...
  • python 爬虫 selenium 模拟登录12306

    千次阅读 2019-03-12 16:15:36
    第一步先发起请求,点击账号登录 会出现登录界面,需要输入账号密码以及验证码 选择输入框,传入账号和密码 接着定位验证码元素,获取验证码的图片地址 保存验证码到本地 发送到打码平台获取正确选项...
  • python 爬虫

    千次阅读 2020-04-30 10:14:21
    Python 爬虫教程(更新中) 1. 简介 爬虫主要有2种方式:API(报文)-静态、点击形式-动态; Xpath + Scrapy(API 静态 爬取-直接post) orXpath + selenium(点击 动态 爬取-模拟) ...
  • python爬虫 微信公众号模拟登陆js解密 过程中使用的应用: 1.python 3.6以上的环境 2.vscode 3.node.js环境 4.pychram 5.360极速浏览器 打开这个网址 微信公众号 账号密码随便输入 然后 F12 审查元素 记得要点xhr ...
  • (一)PYTHON的安装(已安装,可跳过此不步骤) 1、PYTHON下载 PYTHON官网:https://www.python.org/ 按照对应的系统下载,我这里是window系统,点击windows,根据自己系统操作位数下载 ...
  • scrapy模拟登陆 学习目标: 应用 请求对象cookies参数的使用 了解 start_requests函数的作用 ...找到对应的input标签,输入文本点击登陆 1.3 scrapy的模拟登陆 直接携带cookies 找url地址,发送post请求存储co
  • 1.访问到百度页面后,需要模拟点击“登录”按钮。找到“登录”按钮的元素如下所示: 根据id = ‘u1’和class=’lb’找到“登录”按钮 登录百度网页code from selenium import webdriver import time dr
  • 最近想搞一下爬虫模拟登陆,就想直接拿CSDN练手了,一开始还想着一篇文章写完,下到一半发现,大意了,CSDN有加密,得慢慢啃了,对我这个新手来说,相当有难度,所以就分成好几篇啦。 打开F12,查看网页源码 点击...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 411
精华内容 164
关键字:

python爬虫模拟点击

python 订阅
爬虫 订阅