临时被上司安排做爬虫,由于是小白,一路bug层出不穷,几天折腾下来,终于算是稍稍入了门,立个flag。
Step1:Python爬虫包的选择,刚开始是用的urllib,接口调用很简单,但很鸡肋:
import urllib2
import urllib
headers = {'User-Agent': 'User-Agent:Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) App leWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53'}
url = "http://www~.html"
data={'keyword':"TCL"}
data = urllib.urlencode(data)
request = urllib2.Request(url,headers=headers,data=data)
response = urllib2.urlopen(request)
txt = response.read()
然而用urllib无法从网站抓取到动态内容,之后百度到了一个神器selenium, pip install selenium即可安装。
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('-proxy-server=http://58.23.130.18:8080')
browser = webdriver.Chrome(chrome_options=chrome_options)
browser.get(url)
txt = browser.page_source
这里使用了代理IP(’-proxy-server=http://58.23.130.18:8080‘),刚开始傻,直接用本机ip爬,结果导致整个公司的内网ip都被禁止了。。。。
selenium自带的浏览器是火狐的,我用的是Chrome,因此必须下一个Chromedriver放在python的安装文件夹里(Chromedriver没有win64版本的,win64的电脑使用的也是win32版本的)
txt就是爬取的网页HTML源码,网上有很多推荐的HTML解析器,但是因为我要抓取的内容比较少,所以直接正则搞定了。