Obtenez de la soupe sur un site compatible JavaScript

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")


Tâche

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?

Postscript 19/07

Pour HEADless (ne lance pas le navigateur) Il suffit de définir driver = webdriver.PhantomJS (). Entrez avec brew install phantomjs etc.

Recommended Posts

Obtenez de la soupe sur un site compatible JavaScript
Obtenez la source html lorsque javascript est activé à l'aide de curl