Webscraping使用BeautifulSoup:检索网站的源代码

时间:2015-12-16 17:11:02

标签: python html beautifulsoup html-parsing

美好的一天! 我目前正在为阿里巴巴网站制作一个网络刮刀。 我的问题是返回的源代码没有显示我感兴趣的一些部分。当我使用浏览器检查源代码时,数据就在那里,但是在使用BeautifulSoup时我无法检索它。 有什么提示吗?

来自bs4 import BeautifulSoup

def make_soup(url):
    try:
        html = urlopen(url).read()
    except:
        return None
    return BeautifulSoup(html, "lxml")

url =" http://www.alibaba.com/Agricultural-Growing-Media_pid144" soup2 = make_soup(url)

我对使用Chrome的开发人员工具在图像中显示的突出显示部分感兴趣。但是当我尝试在文本文件中写入时,包括突出显示在内的某些部分无处可寻。有小费吗? TIA!

enter image description here

1 个答案:

答案 0 :(得分:0)

您至少需要提供User-Agent标头。

使用requests package代替urllib2的示例:

import requests
from bs4 import BeautifulSoup

def make_soup(url):
    try:
        html = requests.get(url, headers={"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36"}).content
    except:
        return None
    return BeautifulSoup(html, "lxml")

url = "http://www.alibaba.com/Agricultural-Growing-Media_pid144"
soup = make_soup(url)

print(soup.select_one("a.next").get('href'))

打印http://www.alibaba.com/catalogs/products/CID144/2