'' '
Idées d'exploration:
1, requêtes (url)
2, requêtes + json
3, requêtes + XPath
4, requêtes + BeautifulSoup
5, sélénium
6, framework scrapy
7, scrapy-redis et distribué
================================================
OS :
import os
os.system («C: && p.txt»)
os.system («ping 127.0.0.1»)
================================================
demandes:
demandes .get (url, headers = headers, data = {'': ''}, proxies = proxies)
================================================
Proxys :
mandataires = {'http': '124.207.82.166:8008'} # 47.98.129.198
response = requests.get (request_url, proxies = proxies) # 发起 请求
================================================
Fichier :
avec open (chemin, 'w') comme f:
f.write (texte)
===============================================
Filetage :
import threading
threading.Thread (target = fun, kwargs = {'list_url': list_url, 'path_order': path_order1}). start ()
================================================
demandes 、 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 (données)
===============================================
demandes, XPath
from lxml import etree
response = requests.get (list_url, headers = headers)
content = response.content
selector = etree.HTML (scontent) # Charger la page dans l'arborescence
etree items = selector.xpath (path_order) # Trouver l'arbre selon XPath, Revenir à l'itération,
title = item.xpath ("./ div / p [1] / a / text ()") [0] .strip () # L'élément d'objet itératif peut continuer à être recherché par XPath
===============================================
demandes 、 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: Installation Pilote Selenium correspondant à la version chrome https://www.cnblogs.com/JHblogs/p/7699951.html
et installez la librairie de dépendances pip install selenium
depuis selenium import webdriver
chromedriver = "G: /4Anaconda/chromedriver.exe" # Si le pilote est dans Cette étape peut être omise sous le chemin python
browser = webdriver.Chrome (chromedriver) #Ouvrir
une page Web
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)
# les numéros de paramètres sont des pixels browser.back ()
browser.forward () #Quitter
et fermer chaque fenêtre associée chauffeur
browser.quit ()
#Fermez la fenêtre actuelle # browser.close ()
Attente implicite
depuis le webdriver d'importation de sélénium
navigateur = webdriver.Chrome ()
Ici, implicitly_wait () est utilisé pour implémenter l'attente implicite
browser.implicitly_wait (10)
browser.get ('https://www.zhihu.com/explore')
input = browser.find_element_by_class_name ('zu-top-add-question')
print (entrée)
显示 等待
depuis sélénium import webdriver
depuis selenium.webdriver.common.by import par
depuis selenium.webdriver.support.ui import WebDriverWait
depuis selenium.webdriver.support import attendu_conditions comme EC
browser = webdriver.Chrome ()
browser.get ('https://www.taobao.com/')
wait = WebDriverWait (navigateur, 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)
'' '
'' '
# 1. Créer un projet 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
'' '