Python爬取京东商品列表

爬取代码:

import requests
from bs4 import BeautifulSoup

def page_url(url):
    for i in range(1, 3):
        if (i % 2) == 1:
            message(url.format(i))

def message(url):
    res = requests.get(url)
    res.encoding = 'utf-8'
    soup = BeautifulSoup(res.text, 'html.parser')
    n = 0
    for news in soup.select('.gl-i-wrap'):
        title = news.select('.p-name')[0].text.strip()
        price = news.select('.p-price')[0].text.strip()
        commit = news.select('.p-commit')[0].text.strip()
        urls = r'http://' + news.select('.p-img')[0].contents[1]['href']
        n += 1
        print("%d、 \n 名称:%s \n 价格:%s \n 评价:%s \n 链接:%s" %  (n, title, price, commit, urls))
        f = open('info.txt', 'a+', encoding='utf-8')
        f.write(str(str(n)+title+price+commit+urls))

url = 'https://search.jd.com/Search?keyword=%E9%9E%8B%E5%AD%90&enc=utf-8&wq=%E9%9E%8B%E5%AD%90&pvid=2cb987320c55495393d8b67cce3532b3'

page_url(url)

生成词云:

import jieba
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
from scipy.misc import imread


text=''
info = open('info.txt', 'r', encoding='utf-8').read()
text += ' '.join(jieba.lcut(info))
wc = WordCloud(
    width=500,
    height=500,
    margin=2,
    background_color='white',  # 设置背景颜色
    font_path='C:\Windows\Fonts\STZHONGS.TTF',  # 若是有中文的话,这句代码必须添加,不然会出现方框,不出现汉字
    max_words=2000,  # 设置最大现实的字数
    stopwords=STOPWORDS,  # 设置停用词
    max_font_size=150,  # 设置字体最大值
    random_state=42  # 设置有多少种随机生成状态,即有多少种配色方案
)
wc.generate_from_text(text)
wc.to_file('ysx.jpg')

posted @ 2018-04-23 09:38  125叶胜轩  阅读(1882)  评论(0编辑  收藏  举报