一个小爬虫
Posted 成长日记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个小爬虫相关的知识,希望对你有一定的参考价值。
需求:
获取一个展位号和公司名称,具体链接如下
http://www.cr-expo.com/cn/zhanshang.aspx?id=2020
实现
import urllib.request
import pandas as pd
from bs4 import BeautifulSoup
def to_excel(writer, datas, df, sheet_name):
try:
for data in datas:
df.loc[datas.index(data) + 1] = data
df.to_excel(excel_writer=writer, sheet_name=sheet_name, index=None)
except Exception as e:
print("写入excel失败:%s" % e)
def get_html(url):
web = urllib.request.urlopen(url)
soup = BeautifulSoup(web,‘html.parser‘,from_encoding=‘utf-8‘)
data = soup.find_all("ul",class_="zs_three")
return data
def get_booth_data(url):
data = get_html(url)
booth_data = data[0].find_all(‘li‘)
datas =[]
for line in booth_data:
dict_data = {}
dict_data["展位号"] = line.find("h4").get_text().split(‘:‘)[1]
dict_data["公司名称"] = line.find("h1").get_text()
datas.append(dict_data)
return datas
def sava_excel(datas):
file = "展位信息.xlsx"
writer = pd.ExcelWriter(file)
df = pd.DataFrame(
columns=(‘展位号‘, ‘公司名称‘)
)
to_excel(writer, datas, df, sheet_name="展位信息")
writer.save()
writer.close()
if __name__ == ‘__main__‘:
base_url = "http://www.cr-expo.com/cn/zhanshang.aspx?id=2020"
datas = []
for i in range(1,33):
url = base_url+ "&page="+str(i)
datas.extend(get_booth_data(url))
sava_excel(datas)
以上是关于一个小爬虫的主要内容,如果未能解决你的问题,请参考以下文章
Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段