确实有一段时间没怎么写爬虫了,最近又安排了写爬虫的任务,其实很多东西写过一份,之后再做大部分是复制粘贴代码,然后修改一下。所以这里总结一下通用的地方,之后编写爬虫的时候就可以直接拿来用了。
一、使用urllib2库
对于一些简单的网站,需要获取的信息又是以json格式返回时,我一般喜欢用urllib2库直接写爬虫获取。
代码模板:
import urllib2
import urllib
import json
requrl = "http://www.baidu.com" # 输入要抓取的网站
# 如果有要post给requrl的数据,以dict的形式
post_data = {'pageIndex':1, 'pagesize':12}
post_data_urlencode = urllib.urlencode(post_data)
req = urllib2.Request(url=requrl, data=post_data_urlencode)
res_data = urllib2.urlopen(req)
res = res_data.read() # 这里返回的是response中的一个json格式串,res是str类型
# json.dumps:dict转成str
# json.loads: str转成dict
# 将数据转换为dict,方便取出数据
json_data = json.loads(res)
二、使用selenium
from selenium import webdriver
# 使用PhantomJS就不会在每次启动的时候都弹出浏览器了
driver = webdriver.PhantomJS()
requrl = "http://www.baidu.com"
driver.get(requrl)
# 通过xpath获取到想要的元素
elements = driver.find_elements_by_xpath('//div[@class="wd"]')
for element in elements:
next_url = element.get_attribute("href")
# 这里获取到下一个需要抓取的网址后,就可以进入下一个函数了
driver.quit()