python爬取图书信息_Python爬取当当、京东、亚马逊图书信息代码实例
时间: 2023-11-29 15:06:24 浏览: 123
好的,以下是Python爬取当当、京东、亚马逊图书信息的代码实例。
首先,我们需要安装一些必要的库,比如requests、beautifulsoup4等。可以通过以下命令进行安装:
```
pip install requests beautifulsoup4 lxml
```
接下来,我们以当当网为例,演示如何爬取图书信息。代码如下:
```python
import requests
from bs4 import BeautifulSoup
# 获取页面HTML代码
def get_html(url):
try:
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
response.raise_for_status()
response.encoding = response.apparent_encoding
return response.text
except:
return ""
# 解析HTML代码,获取图书信息
def parse_html(html):
soup = BeautifulSoup(html, 'lxml')
book_list = []
for book in soup.find_all('div', class_='search_book_list'):
book_dict = {}
book_dict['title'] = book.find('a', class_='title').text.strip()
book_dict['author'] = book.find('span', class_='search_book_author').text.strip()
book_dict['publisher'] = book.find('span', class_='search_book_author').next_sibling.strip()
book_dict['price'] = book.find('span', class_='search_now_price').text.strip()
book_list.append(book_dict)
return book_list
# 主函数
if __name__ == '__main__':
keyword = 'Python'
url = 'http://search.dangdang.com/?key={}&act=input'.format(keyword)
html = get_html(url)
book_list = parse_html(html)
for book in book_list:
print(book)
```
以上代码中,我们首先定义了一个名为get_html的函数,用于获取指定页面的HTML代码。该函数接受一个参数url,表示要获取的页面的URL。在函数中,我们使用requests库发送HTTP请求,并设置User-Agent头部,以模拟浏览器访问页面的行为。如果请求成功,我们会将页面的编码设置为自动判断的编码方式,并返回页面的HTML代码。
接下来,我们定义了一个名为parse_html的函数,用于解析HTML代码,并获取页面中的图书信息。该函数接受一个参数html,表示要解析的HTML代码。在函数中,我们使用beautifulsoup4库对HTML代码进行解析,并通过find_all方法找到页面中所有的图书信息。对于每一本图书,我们将其信息存储在一个字典中,并将所有图书信息存储在一个列表中,最后返回该列表。
最后,我们在主函数中调用了get_html和parse_html函数,分别获取页面HTML代码和解析HTML代码,然后打印获取到的图书信息。
类似地,我们还可以编写代码实现爬取京东、亚马逊等电商平台上的图书信息。具体实现方式与上面的代码类似,只需针对不同的页面进行稍微的调整即可。
阅读全文