提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
本文讲解如何进行简单爬取页面数据
一、新建项目
新建一个项目为spider(名字自己想也可以)
二、导入包
点击file》setting添加bs4h和xlwt 。剩下下的pycharm自带如若没有,再下载
三、在main里输入代码
import re
import bs4
import urllib.request,urllib.error #解析url
import xlwt
import sqlite3
finklink=re.compile(r'<a href="(.*?)">')
findImg=re.compile(r'<img.*src="(.*?)"',re.S) #让换行符包含在字符串中
def main():
baseurl ="https://movie.douban.com/top250?start="
datalist=getData(baseurl)
savapath="douban250.xls"
#askURL("https://movie.douban.com/top250?start=50&filter=")
savaData(savapath,datalist)
def getData(baseurl):
datalist=[]
for i in range(0,10):
url= baseurl+str(i*25)
html=askURL(url)
soup= bs4.BeautifulSoup(html,"html.parser")
for item in soup.find_all('div',class_="item"):
data=[]
item= str(item)
link = re.findall(finklink,item)[0]
data.append(link)
imgs=re.findall(findImg,item)[0]
data.append(imgs)
datalist.append(data)
return datalist
def savaData(savapath,datalsit):
workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet("sccp",cell_overwrite_ok=True)
col=("电影简介","图片链接")
for i in range(0,2):
worksheet.write(0,i,col[i])
for i in range(0,250):
print("第%d条"%i)
data=datalsit[i]
for j in range(0,2):
worksheet.write(i+1,j,data[j])
workbook.save(savapath)
#模拟浏览器 伪装使用
def askURL(url):
head={
"User-Agent": "Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 86.0.4240.75Safari / 537.36"
}
request= urllib.request.Request(url,headers=head)
html=""
try:
response=urllib.request.urlopen(request)
html= response.read().decode("utf-8")
print(html)
except 1:
print("2222")
return html
if __name__ == "__main__":
main()
四 打开自动生成的xls文件
总结
提示:这个只是简单的对豆瓣网站数据进行抓取小部分数据,可以自己研究添加