python 北京新发地市场价格爬取

这个站是挺不错的,每天会更新蔬菜价格,非常实用,简单写一个小爬虫爬取一下。

import requests
from bs4 import BeautifulSoup
url = "http://www.xinfadi.com.cn/marketanalysis/0/list/1.shtml"
resp = requests.get(url)
page = BeautifulSoup(resp.text, "html.parser")
table = page.find("table", attrs={"class": "hq_table"}) # 拿到数据
tr = table.find_all('tr')
for i in tr:
    td = i.find_all("td")
    # print(td[0].text)  # 获取第一个td,然后获取他里面的文字
    name = td[0].text
    low_price = td[1].text
    avg_price = td[2].text
    high_price = td[3].text
    specs_price = td[4].text
    unit_price = td[5].text
    date = td[6].text
    print("名字:"+name+"最低价:"+low_price+"平均价:"+avg_price+"最高价:"+high_price+"规格:"+specs_price+"单位:"+unit_price+"发布日期:"+date)

resp.close()

这里着重说一下为什么要有一个resp.close()这是因为我们爬虫虽然理论上是合法的,但是假如我们长期爬同一个站,会造成服务器出现种种问题,那么就是违法的了,而且我们这是为了学习,所以在结束后加一个关闭,是非常友好的举动。

这里我们利用的是bs4里的BeautifulSoup,之所以选择这个库来处理数据是因为非常简单,无需像re一样写匹配的正则表达式,只需要找格式即可。
之后爬取到的数据可以通过csv或者txt来写入,然后进行保存。

最后修改:2021 年 04 月 25 日 10 : 47 PM
如果觉得我的文章对你有用,请随意赞赏