首先,在py3.6的环境下,先解析网页源代码(注意编码格式):
from bs4 import BeautifulSoup
with open("C:/Users/Administrator/Desktop/award/index.html",'r',encoding= 'utf-8') as web_data:
Soup = BeautifulSoup(web_data,'lxml')
print(Soup)
爬取网络中的页面元素内容:
出现nth-of-type错误,则需要进行修改:
titles = soup.select('#serOnline-container320 > div > div:nth-child(1) > a')改为
titles = soup.select('#serOnline-container320 > div > div:nth-of-type(1) > a')
爬取标题:
在浏览器中查看所选标题的代码,看属于哪一个div下的哪一个class下的哪一个标签,以div.[class]的格式对标题进行爬取。代码如下:
from bs4 import BeautifulSoup
import requests
url = 'http://www.hsdjixie.com/'
web_data = requests.get(url)
soup = BeautifulSoup(web_data.text,'lxml')
titles = soup.select('div.serOnline-list-v > a')
print(titles)
爬取图片:
在浏览器中查看所选图片的代码,看img标签下的宽/高是多少,以img['img[width="90"]']的格式对图片进行爬取。代码如下:
imgs= soup.select('img[width="90"]')
print(imgs)
爬取标签,比如图片名或一些文字介绍,依旧查看是什么div下的,此div是父类div,div.class,代码如下:
cates = soup.select('div.parametersDiv')
print(cates)
将爬取后的信息制作成字典:
for title,cates in zip(titles,cates):
data = {
'title':title.get_text(),
'cate':list(cates.stripped_strings),
}
print(data)
headers是构造提交给网页的信息
headers = {
'User-Agent' : ' ',
'Cookie' : ' ',
}