python爬虫-系列3
通过python爬取各大门户网站的数据,比如儿童/腾讯动漫等。当作是实践python,写写程序。主要是找出源码中html的位置,通过bs4解析,找到参数值/属性值。
汽车之家
像汽车之家,http://car.qichedaquan.com/carmaster/KR627009。
后面的是汽车品牌的拼音缩写,另外,可以看到在html源码中,页面显示的汽车title存储在a的class=brand_title,因此我们可以解析出来:
1 | import urllib2 |
腾讯动漫
道理是一样的,还是需要观察html的样式,以及自己所要的信息。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22import urllib2
from bs4 import BeautifulSoup
import time
total = 27394
page = 1
while page<=978:
url = "http://ac.qq.com/Comic/all/search/time/page/{}".format(page)
req = urllib2.Request(url)
resp = urllib2.urlopen(req)
respHtml = resp.read()
resp.close()
soup = BeautifulSoup(respHtml,"lxml")
ms = soup.findAll("a",{'class':"mod-cover-list-thumb mod-cover-effect ui-db"})
f = open('/Users/huwenhao02/workspace/comic_tag_0904', 'a+')
for m in ms:
print m['title']
f.write(m['title'].encode('utf-8') +'\n')
f.close()
print 'write offset=',page
page += 1
time.sleep(10)
猫眼
猫眼是电影的网站,比较全,有最新/热映/经典等频道,但是也有限制,应该是反爬逻辑限制的。
1 | import urllib2 |
365电视剧网
同样看html的源码,只是频道得不断更换
1 | import urllib2 |
六一儿童网
有些网站html中不含页面上的信息,而是在检查元素中,这就需要另外的插件来完成爬取。selenium,可以搜索下载,并且进行chromedriver的下载和配置。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import time
from selenium import webdriver
import os
chromedriver = "/usr/local/bin/chromedriver"
os.environ['webdriver.chrome.driver'] = chromedriver
page = 1
while page <= 22:
driver = webdriver.Chrome(chromedriver)
url = "http://movie.61ertong.com/list.html#type:1,letter:,country:,age:,serial:,order:3,video_type:,category:,subject:,grade:,page:{}".format(page)
driver.get(url)
#tags = driver.find_element_by_css_selector("div[@class='new_list']")
tags = driver.find_element_by_id('J_result').find_elements_by_tag_name('p')
for tag in tags:
print tag.text
driver.quit()
page += 1