Notes sur la façon d'obtenir diverses soupes. Il semble que vous deviez utiliser du sélénium si vous avez une recherche d'images google ou un site où javascript est valide.
get_soup.py
#-*- coding:utf-8 -*-
from bs4 import BeautifulSoup
def get_soup_uulib2(url):
import urllib2
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
page = opener.open(url)
soup = BeautifulSoup(page,"lxml")
return soup
def get_soup_urequests(url):
import requests
s = requests.Session()
r = s.get(url)
soup = BeautifulSoup(r.text,"lxml")
print soup
def get_soup_uselenium(url):
from selenium import webdriver
#need chromedriver #https://sites.google.com/a/chromium.org/chromedriver/downloads
chromedriver = "./chromedriver"
driver = webdriver.Chrome(chromedriver)
driver.get(url)
page_source= driver.page_source
soup=BeautifulSoup(page_source,"lxml")
return soup
#javascript=enable
print get_soup_uselenium("https://www.google.co.jp/search?q=Chat")
#java=off
#print get_soup_uulib2("https://www.google.co.jp/search?q=Chat")
#print get_soup_uulib2("https://www.google.co.jp/search?q=Chat")
Il est difficile de démarrer le navigateur un par un. J'ai cherché sur Google "sélénium sans tête" et j'ai essayé diverses choses, mais j'ai abandonné. Quelqu'un peut-il me le dire?
Pour HEADless (ne lance pas le navigateur)
Il suffit de définir driver = webdriver.PhantomJS ()
.
Entrez avec brew install phantomjs
etc.