• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

网络爬虫入门到

武飞扬头像
顶尖高手养成计划
帮助1

简介

数据采集文章

开始

入门程序

环境准备

pip3 install beautifulsoup4

基本操作

  1.  
    from urllib.request import urlopen
  2.  
    from bs4 import BeautifulSoup
  3.  
     
  4.  
    html = urlopen("http://www.百度.com")
  5.  
    # print(html.read()) (打印html完整内容)
  6.  
    bsObj = BeautifulSoup(html.read())
  7.  
     
  8.  
    #选择上面完整内容的a标签
  9.  
    print(bsObj.a)

结果

学新通

更具class获取网页信息

得到的元素还可以像操作dom一样得到他们的父节点,兄弟节点等等,也就是可以关系获取信息。

  1.  
    from urllib.request import urlopen
  2.  
    from bs4 import BeautifulSoup
  3.  
     
  4.  
     
  5.  
    # 请求网站数据
  6.  
    html = urlopen("https://www.pythonscraping.com/pages/warandpeace.html")
  7.  
    bsObj = BeautifulSoup(html)
  8.  
    # 根据网站数据得到class为red的元素
  9.  
    name_list = bsObj.find_all("span", {"class": "green"})
  10.  
    for name_item in name_list:
  11.  
    # <span class="green">the Empress</span>
  12.  
    # print(name_item)
  13.  
    #得到最后的名称the Empress
  14.  
    print(name_item.get_text())

结合正则表达式抓取指定图片(淘宝网为例)

这个不能成功

  1.  
    from urllib.request import urlopen
  2.  
    from bs4 import BeautifulSoup
  3.  
    import re
  4.  
     
  5.  
    html = urlopen("https://www.taobao.com/")
  6.  
    bsObj = BeautifulSoup(html)
  7.  
    images = bsObj.find_all("img",{"src": re.compile("\.\.\.webp")})
  8.  
    for image in images:
  9.  
    print(image)

获取网站

  1.  
    from urllib.request import urlopen
  2.  
    from bs4 import BeautifulSoup
  3.  
    import re
  4.  
     
  5.  
    html = urlopen("http://en.wikipedia.org/wiki/Kevin_Bacon")
  6.  
    bsObj = BeautifulSoup(html)
  7.  
     
  8.  
    #得到a标签,并且得到最后的结果
  9.  
    for link in bsObj.find_all("a",href=re.compile("^(/wiki/)((?!:).)*$")):
  10.  
    if 'href' in link.attrs:
  11.  
    # /wiki/Bernie_Madoff
  12.  
    print(link.attrs['href'])

爬虫实战

相关软件安装

安装requests

pip install requests
  1.  
    python
  2.  
    import requests

学新通

 如果能够导入说明安装成功了

安装Selenium

学新通

pip  install selenium
  1.  
    python
  2.  
    import selenium

学新通

安装ChromeDriver 

下载地址

CNPM Binaries Mirror

https://chromedriver.storage.谷歌apis.com/index.html

官网

https://sites.谷歌.com/chromium.org/driver/?pli=1

https://sites.谷歌.com/a/chromium.org/chromedriver/downloads

先查看下自己的浏览器版本号

学新通

 学新通

找到和自己浏览器支持的版本

学新通

  1.  
    在命令行输入
  2.  
    chromedriver

学新通

看到上面的说明安装成功 

安装PhantomJS

学新通

学新通

下载地址

Download PhantomJS

加入环境变量以后打开命令行输入

phantomjs

学新通

由于高版本selenium放弃了phantomjs的使用,下面是使用chrome的无界面模式 

  1.  
    from selenium import webdriver
  2.  
     
  3.  
    chrome_options = webdriver.ChromeOptions()
  4.  
    chrome_options.add_argument('--headless')
  5.  
    browser = webdriver.Chrome(chrome_options=chrome_options)
  6.  
    browser.get('https://www.百度.com/')
  7.  
    print("==============")
  8.  
    print(browser.current_url)

aiohttp安装

学新通

pip install aiohttp

 lxml安装

学新通

pip install lxml

 pyquery安装

学新通

tesserocr安装 

Index of /tesseract

pip3 install tesserocr pillow

学新通

tornado安装 

pip install  tornado

学新通

创建一个简单的访问

  1.  
    import tornado.ioloop
  2.  
    import tornado.web
  3.  
     
  4.  
    # 每一个handler表示一个请求处理结果
  5.  
     
  6.  
     
  7.  
    class MainHandler(tornado.web.RequestHandler):
  8.  
    def get(self):
  9.  
    self.write("hello, world")
  10.  
     
  11.  
     
  12.  
    # 下面的r表示访问的路径
  13.  
    def make_app():
  14.  
    return tornado.web.Application([
  15.  
    (r"/", MainHandler)
  16.  
    ])
  17.  
     
  18.  
     
  19.  
    if __name__ == "__main__":
  20.  
    app = make_app()
  21.  
    app.listen(8888)
  22.  
    tornado.ioloop.IOLoop.current().start()
学新通

 学新通

Charles安装 

学新通 下载地址

Download a Free Trial of Charles • Charles Web Debugging Proxy

证书配置

学新通

学新通

学新通 mitmproxy安装

 学新通

Appium安装

学新通 下载地址

https://github.com/appium/appium-desktop/releases

实战

chromedriver

下面是打开百度找到输入框输入python搜索

  1.  
    from selenium import webdriver
  2.  
    from selenium.webdriver.common.by import By
  3.  
    from selenium.webdriver.common.keys import Keys
  4.  
    from selenium.webdriver.support import expected_conditions as EC
  5.  
    from selenium.webdriver.support.wait import WebDriverWait
  6.  
     
  7.  
    browser = webdriver.Chrome()
  8.  
    try:
  9.  
    browser.get("https://百度.com")
  10.  
    input = browser.find_element(By.ID, "kw")
  11.  
    input.send_keys('python')
  12.  
    input.send_keys(Keys.ENTER)
  13.  
    wait = WebDriverWait(browser, 10)
  14.  
    print(browser.current_url)
  15.  
    print(browser.get_cookie)
  16.  
    print(browser.page_source)
  17.  
    finally:
  18.  
    browser.close()
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhhacchh
系列文章
更多 icon
同类精品
更多 icon
继续加载