爬虫notes

‘’’

爬取思路:
1、requests(url)
2、requests + json
3、requests + XPath
4、requests + BeautifulSoup
5、selenium
6、scrapy框架
7、scrapy-redis 及分布式

===============================================
OS:
import os
os.system(“C: && p.txt”)
os.system(“ping 127.0.0.1”)

===============================================
requests:
requests.get(url, headers=headers, data={’’:’’}, proxies=proxies)

===============================================
Proxies:
proxies = {‘http’: ‘124.207.82.166:8008’} # 47.98.129.198
response = requests.get(request_url, proxies=proxies) # 发起请求

===============================================
File:
with open(path,‘w’) as f:
f.write(text)

===============================================
Threading:
import threading
threading.Thread(target=fun, kwargs={‘list_url’:list_url,‘path_order’:path_order1}).start()

===============================================
requests、json:
1.data = json.load(open(“package1.json”,encoding=“utf-8”))
response = requests.get(url, headers=headers)
print(response.text)

2.response = requests.get(url)
data = response.text
obj = json.loads(data)

===============================================
requests、XPath
from lxml import etree
response = requests.get(list_url, headers=headers)
content = response.content
selector = etree.HTML(scontent) # 将页面装入etree树
items = selector.xpath(path_order) # 按照XPath查找树,返回迭代,
title = item.xpath("./div/p[1]/a/text()")[0].strip() # 迭代对象item可继续用XPath查找

===============================================
requests、BeautifulSoup
from bs4 import BeautifulSoup
response = requests.get(url)
html= response.text
soup = BeautifulSoup(html, ‘lxml’)
soup_str = soup.prettify() # 标准化html
tag = soup.b
tag的一系类操作

===============================================
selenium: 安装对应chrome版本的 Selenium driver https://www.cnblogs.com/JHblogs/p/7699951.html
并且安装依赖库 pip install selenium
from selenium import webdriver
chromedriver = “G:/4Anaconda/chromedriver.exe” # 驱动若在python路径下 即可省略这一步
browser = webdriver.Chrome(chromedriver)
#打开一个网页
browser.get(“http://www.baidu.com”)
browser.find_element_by_id(“kw”).send_keys(“selenium”)
browser.find_element_by_id(“su”).click()
browser.title
browser.set_window_size(480, 800) #参数数字为像素点
browser.back()
browser.forward()
#退出并关闭窗口的每一个相关的驱动程序

browser.quit()

#关闭当前窗口
#browser.close()

隐式等待

from selenium import webdriver

browser = webdriver.Chrome()

这里用implicitly_wait()实现了隐式等待

browser.implicitly_wait(10)
browser.get(‘https://www.zhihu.com/explore’)
input = browser.find_element_by_class_name(‘zu-top-add-question’)
print(input)

显示等待
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

browser = webdriver.Chrome()
browser.get(‘https://www.taobao.com/’)
wait = WebDriverWait(browser, 10)
input = wait.until(EC.presence_of_element_located((By.ID, ‘q’)))
button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, ‘.btn-search’)))
print(input, button)

‘’’

‘’’
#一、 创建scrapy项目(cmd):
scrapy startproject weibospider
cd weibospider

    #二、 创建sipder语句cmd:scrapy genspider WeiboSpider image.baidu.com
    
    拒绝爬虫协议 ROBOTSTXT_OBEY = False 
    
    运行爬虫 scrapy crawl baiduimg
    
    #三、 设置数据结构
    name = scrapy.Field()
    
    #四、 导入 数据 from hotnewsSpider.items import WeiboSpiderItem
    使用 weiboitem = WeiboSpiderItem()
    weiboitem['name'] = '123'
    返回 yield weiboitem
    
    #五、 发送请求传递 (在parse中)
    yield scrapy.Request(url=url, headers=self.headers, cookies=self.cookies, callback=self.clickFindMore)
    # 发送请求传递并回调,加参 callback
    yield scrapy.Request(link,callback=self.parse_detail)
    
    #六、重写初始化请求
    def start_requests(self):
        for url in self.urls:
            yield scrapy.Request(url=url, headers=self.headers, cookies=self.cookies, callback=self.parse)
            
    #七、接收response
    def parse(self,response):
        pass

‘’’

已标记关键词 清除标记
相关推荐
驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵基于驱动之家十余年的专业数据积累,驱动支持度高达98.3%,已经为数亿用户解决了各种电脑驱动问题、系统故障,是目前最有效的驱动软件。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能。另外除了驱动备份恢复功能外,驱动精灵还提供了Outlook地址簿、邮件和 IE 收藏夹的备份与恢复。并且有多国语言界面供用户选择。 驱动精灵功能介绍: 驱动问题 迎刃而解 电脑有设备不工作?找不到驱动程序?驱动版本太旧,玩新游戏总是出状况?这都不是事儿,驱动精灵帮你搞定 系统补丁 快速安装 操作系统补丁没打齐?缺少各种.Net、VC运行库致使程序无法运行?驱动精灵可让您的系统安全稳定,功能完备。 软件宝库 装机不愁 系统刚装好,需要各种软件?驱动精灵软件宝库帮你实现快速装机一条龙,要什么软件直接挑选,快速又安全。 硬件检测 辨别真伪 专业硬件检测功能,内容丰富,结果准确。穿透表面看本质,助您判断硬件设备型号状态,JS骗子无处可藏。 驱动精灵2016使用教程: 软件安装 首先,您需要通过驱动精灵下载页面,下载驱动精灵2015最新版本。点击安装图标进行安装。驱动精灵提供有集成网卡驱动的完全版本和未集成网卡驱动的版本供用户选择,以上两个版本的区别仅在于离线模式下的网卡驱动自动安装功能。 路径配置 您可以自由选择驱动精灵的安装路径,也可以对驱动精灵的驱动备份、下载目录进行配置。我们建议您把备份和下载目录设置在非操作系统分区,这样在重新安装操作系统时可以保证驱动文件不会丢失。 卸载软件 驱动精灵体积小巧,且没有自动启动项,不会对您计算机上的其他程序造成干扰。我们建议您在计算机上保留驱动精灵软件来及时更新最新的驱动程序。如果您还是想卸载驱动精灵,可以通过开始菜单中的驱动精灵卸载快捷方式进行卸载,也可通过控制面板中的添加删除程序进行卸载。 使用驱动精灵 主程序界面 驱动精灵2016版本新加入了包括完整驱动安装、硬件信息检测、常用工具下载功能,这些功能您均可以在驱动精灵的主界面中找到这些功能的快捷按钮。 驱动程序区域的功能有,“更新驱动”按钮。这个按钮的功能是驱动精灵原有“快速更新”、“完全更新”功能的升级,它包括了两种安装方式,真正实现快速驱动更新功能。完全更新自动下载驱动至您设定好的目录,驱动文件包括厂商提供的标准安装包和我们搜集的可用安装包。 至于备份和还原功能,则是驱动精灵2015版本就提供的实用功能。您可对本机现有的驱动进行备份,在适当的时候进行还原。 主界面右侧区域是驱动精灵的新功能:硬件检测。 它可告知您的计算机具体配置状况,包括处理器、内存、主板、显卡、声卡、网卡等硬件信息一目了然。在以后的版本中此功能将会得到扩充,您可以查看更多的硬件信息,对您的硬件了如指掌。 驱动精灵更新日志: 驱动精灵 V9.2更新内容: 全球97%的超高硬件驱动支持率 多重算法保证驱动精确匹配 双重下载引擎,全网CDN文件加速 驱动精灵2015改进列表: 1、全新驱动精灵2014引擎,大幅提升硬件和驱动辨识能力。 2、对接新版云数据库,寻获驱动效率更高更准确。 3、高效实时引擎,更强大的实时即插即用功能。 4、全新2013界面设计,去除广告,界面更简洁,操作更方便。 5、新增“精灵服务”核心功能控制区,使用更灵活。 6、新增“推荐功能”控制区。 7、新增驱动程序升级提示忽略功能。 8、新增一键下载功能。 9、硬件检测模块全面升级,增加大量新硬件支持。 10、系统补丁模块全面升级,检测速度大幅提升,确保补丁100%第一时间更新。
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页