wp231957 发表于 2021-5-13 08:52:32

grey_lemon 发表于 2021-5-13 07:57
请教一下

我用以下代码结果运行后错误提示


这个网站也没有做反爬措施   headers 都不用加的
我随便爬了一条信息:
url="https://www.digikey.cn/en/products/filter/through-hole-resistors/53?s=N4IgrCBcoA5QjAGhDOl4AYMF9tA"
res=requests.get(url)
print(res.status_code)
tree = etree.HTML(res.text)
data = tree.xpath("//table[@id='data-table-0']/tbody/tr/td/div/div/div/a/text()")
print(data)
'''
PS D:\wp> py app4.py
   200
   ['PAC300002008FAC000']
PS D:\wp>
'''

grey_lemon 发表于 2021-5-13 09:15:24

wp231957 发表于 2021-5-13 08:18
你这也不是那个网站了,我17楼代码是测试成功的

17楼代码是成功的, 谢谢!
19楼没有写清楚, 是想试一下这个网站能不能爬

https://www.digikey.cn/en/products/filter/through-hole-resistors/53?s=N4IgrCBcoA5QjAGhDOl4AYMF9tA

grey_lemon 发表于 2021-5-18 09:06:45

https://www.findchips.com/parametric/Resistors/Fixed%20Resistors?sort=false&page=50

像这个网站只显示了50页, 但是搜索结果有大约150,000 页
这种情况要怎么把所有的搜索结果都爬出来?

wp231957 发表于 2021-5-18 09:20:06

grey_lemon 发表于 2021-5-18 09:06
https://www.findchips.com/parametric/Resistors/Fixed%20Resistors?sort=false&page=50

像这个网站只 ...

那么多页没爬过   别把人家服务器干瘫了,不要贪心啊

grey_lemon 发表于 2021-5-18 09:22:18

wp231957 发表于 2021-5-18 09:20
那么多页没爬过   别把人家服务器干瘫了,不要贪心啊

那像这种隐藏起来的页码有办法爬吗?

wp231957 发表于 2021-5-18 09:31:50

grey_lemon 发表于 2021-5-18 09:22
那像这种隐藏起来的页码有办法爬吗?

人家大概只提供50页结果吧   50以后的也没有入口啊

grey_lemon 发表于 2021-5-24 13:01:57

wp231957 发表于 2021-5-12 16:22
给你写了一个txt版本的,xls版本的你要是用 自己研究一下,

https://www.digikey.cn/en/products/filter/through-hole-resistors/53

要从这个网站爬取一样的信息,所有的页码, 可是网址每一页网址都不规则。
可以示例下要怎么爬取吗
谢谢

wp231957 发表于 2021-5-24 15:04:13

grey_lemon 发表于 2021-5-24 13:01
https://www.digikey.cn/en/products/filter/through-hole-resistors/53

要从这个网站爬取一样的信息 ...

加密了,我对反加密这块不咋擅长帮不了你了

grey_lemon 发表于 2021-5-24 16:02:11

wp231957 发表于 2021-5-24 15:04
加密了,我对反加密这块不咋擅长帮不了你了

可以爬

import requests,re
from lxml import etree

url="https://www.digikey.cn/en/products/filter/through-hole-resistors/53?s=N4IgrCBcoA5QjAGhDOl4AYMF9tA"
res=requests.get(url)
print(res.status_code)
tree = etree.HTML(res.text)
data = tree.xpath("//table[@id='data-table-0']/tbody/tr/td/div/div/div/a/text()")
print(data)

wp231957 发表于 2021-5-24 17:11:01

grey_lemon 发表于 2021-5-24 16:02
可以爬

import requests,re


我说的是页码部分被加密了,需要分析js文件,狠难弄的

grey_lemon 发表于 2021-5-24 19:49:18

像这个网站, 网址是根据物料号变更的, 比如
https://octopart.com/search?q=CF12JT68K0&currency=USD&specs=0
https://octopart.com/search?q=CF1/2CT52R472J&currency=USD&specs=0
https://octopart.com/search?q=SFR16S0003321FR500&currency=USD&specs=0


分别是变换了以下3个物料号
CF12JT68K0
CF1/2CT52R472J
SFR16S0003321FR500

像这种情况比如我有一个物料号清单, 根据物料号清单去网页上抓取相应的"Spec"数据, 网址这块要怎么处理啊?
谢谢

wp231957 发表于 2021-5-25 10:01:16

grey_lemon 发表于 2021-5-24 19:49
像这个网站, 网址是根据物料号变更的, 比如
https://octopart.com/search?q=CF12JT68K0&currency=USD&sp ...

是这个吗

data={
   'q': 'CF12JT68K0',
   'currency': 'USD',
   'specs': '0'
}
url="https://octopart.com/search"
headers={'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'}
res=requests.get(url,headers=headers,params=data)
print(res.status_code)

grey_lemon 发表于 2021-5-25 14:09:29

wp231957 发表于 2021-5-25 10:01
是这个吗

data={


好像不是
比如说下面这个网址
https://octopart.com/search?q=CF1/2CT52R472J&currency=USD&specs=0

用Chrome打开后, 读取页面上相应的以下信息:
Part                Price        Number of authorized sellers        Market Availability        Factory Lead Time         Resistance        Mount        Case/Package        Tolerance        Power Rating        Composition        Temperature Coefficient        Max Operating Temperature        Military Standard        Min Operating Temperature        Schedule B        Termination        Voltage Rating        Length        RoHS
                                                                                                                                                               
KOA Speer        Datasheet        USD 0.181        8        110,000        10w        4.7 kΩ        Through Hole        Conformal        5%        500 mW        Carbon Film        350 ppm/°C        155 °C        Not        -55 °C        8533100070        Axial        400 V        8.5 mm        Compliant
CF1/2CT52R472J                                                                                                                                                               


现在是有一个料号清单, 比如说
CF12JT68K0
CF1/2CT52R472J
SFR16S0003321FR500

相应地每个料号有一个网址
CF12JT68K0>https://octopart.com/search?q=CF12JT68K0&currency=USD&specs=0
SFR16S0003321FR500   >https://octopart.com/search?q=SFR16S0003321FR500&currency=USD&specs=0

然后读出与以上一样的参数。

想这么做是因为有1000多个料号。。。要读取1000多个料号相应的参数信息
谢谢!

wp231957 发表于 2021-5-25 15:33:04

grey_lemon 发表于 2021-5-25 14:09
好像不是
比如说下面这个网址
https://octopart.com/search?q=CF1/2CT52R472J&currency=USD&specs=0


常规爬估计爬不到,可以尝试一下selenium

grey_lemon 发表于 2021-5-26 10:49:39

wp231957 发表于 2021-5-25 15:33
常规爬估计爬不到,可以尝试一下selenium

可以举个例子吗? 谢谢

grey_lemon 发表于 2021-5-26 10:50:30

wp231957 发表于 2021-5-24 17:11
我说的是页码部分被加密了,需要分析js文件,狠难弄的

谁可以帮忙把这个网站爬下试试看啊, 因为其他网站的信息都不全
页: 1 [2]
查看完整版本: Python爬虫